XGetFeedbackControl

Section: X FUNCTIONS (3X11)
Updated: Release 6.6
索引 xjman
 

名前

XGetFeedbackControl, XChangeFeedbackControl - 入力デバイスのフィードバックの問い合わせ・変更を行なう  

書式

XFeedbackState * XGetFeedbackControl(display, device, num_feedbacks)

      Display *display;

      XDevice *device

      int *num_feedbacks

int XChangeFeedbackControl(display, device, mask, control)

      Display *display;

      XDevice *device

      Mask mask

      XFeedbackControl *control 

引き数

display
X サーバへの接続を指定する。
device
フィードバックの問い合わせ・変更を行なう対象となるデバイスを指定する。
num_feedbacks
デバイスがサポートしているフィードバックの数が返されるアドレスを指定する。
mask
フィードバックのタイプに特有の、変更されるフィードバックを示すマスクを 指定する。
control
フィードバックの新しい値が設定される XFeedbackControl 構造体の アドレスを指定する。
 

説明

これらのリクエストは、フィードバックをサポートしているデバイスの操作を 提供する。要求されたデバイスがフィードバックをサポートしていない場合は、 エラー BadMatch が生成される。与えられたデバイスのフィードバック のサポートの有無は、XOpenDevice リクエストが返す情報によって判定 できる。フィードバックをサポートしているデバイスに対しては、 XOpenDevice は input_class フィールドが定数 FeedbackClass である XInputClassInfo 構造体を返す(定数はファイル XI.h で定義されている)。

XGetFeedbackControl リクエストは、XFeedbackState 構造体の リストへのポインタを返す。このリスト中のそれぞれの要素は、デバイスがサ ポートしているフィードバックの1つを記述する。要素の長さは可変なので、 リスト中の次の要素を参照できるようにするため、各要素は自分の長さを持っ ている。

フィードバックのクラスについては、現在は以下のものが定義されている: KbdFeedbackClass, PtrFeedbackClass, StringFeedbackClass, IntegerFeedbackClass, LedFeedbackClass, BellFeedbackClass. これらの定数は、ファイル XI.h 内で定義されている。入力デバイスは、 0個以上のクラスのフィードバックをサポートすることができ、同じクラスの 複数のフィードバックをサポートすることもできる。それぞれのフィードバッ クは、その入力デバイスに対し、そのクラス中で一意に決まるクラス識別子を 持っている。このIDは、XChangeFeedbackControl リクエストを行うと きにフィードバックを識別するために使われる。

XGetFeedbackControl は、エラーBadDevice, BadMatch を 起こすことがある。

XChangeFeedbackControl リクエストは、指定したデバイス上の1つの フィードバックの値を変更する。フィードバックは、リクエストに渡される XFeedbackControl 構造体の id フィールドを使って識別される。変更 するフィードバック構造体のフィールドは、リクエストに渡したマスクのビッ ト値で識別される。

XChangeFeedbackControl は、エラー BadDevice, BadMatch, BadValue を起こすことがある。  

構造体

フィードバックの各クラスは、クラスの特有の構造体で記述される。 これらの構造体は、ファイル XInput.h 内で記述されている。 XFeedbackStateXFeedbackControl は、フィードバックの各 クラスの先頭に3つのフィールドを持つ、一般的な構造体である。

typedef struct {
       XID class;

       int length;

       XID id;

} XFeedbackState, XFeedbackControl;

XKbdFeedbackState 構造体は、X のキーボード上のフィードバックと等 価なフィードバックに対して返される属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     click;
        int     percent;
        int     pitch;
        int     duration;
        int     led_mask;
        int     global_auto_repeat;
        char    auto_repeats[32];
} XKbdFeedbackState;

XPtrFeedbackState 構造体は、X のポインタ上のフィードバックと等価 なフィードバックに対して返される属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     accelNum;
        int     accelDenom;
        int     threshold;
} XPtrFeedbackState;

XIntegerFeedbackState 構造体は、整数値のフィードバックに対して返 される属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     resolution;
        int     minVal;
        int     maxVal;
} XIntegerFeedbackState;

XStringFeedbackState 構造体は、文字列のフィードバックに対して返 される属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     max_symbols;
        int     num_syms_supported;
        KeySym  *syms_supported;
} XStringFeedbackState;

XBellFeedbackState 構造体は、ベルのフィードバックに対して返され る属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     percent;
        int     pitch;
        int     duration;
} XBellFeedbackState;

XLedFeedbackState 構造体は、LED のフィードバックに対して返される 属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     led_values;
} XLedFeedbackState;

XPrtFeedbackControl 構造体は、ポインタのフィードバックに対して制 御することができる属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     accelNum;
        int     accelDenom;
        int     threshold;
} XPtrFeedbackControl;

XKbdFeedbackControl 構造体は、キーボードのフィードバックに対して 制御できる属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     click;
        int     percent;
        int     pitch;
        int     duration;
        int     led_mask;
        int     led_value;
        int     key;
        int     auto_repeat_mode;
} XKbdFeedbackControl;

XStringFeedbackControl 構造体は、文字列のフィードバックに対して 制御できる属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     num_keysyms;
        KeySym  *syms_to_display;
} XStringFeedbackControl;

XIntegerFeedbackControl 構造体は、整数値のフィードバックに対して 制御できる属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     int_to_display;
} XIntegerFeedbackControl;

XBellFeedbackControl 構造体は、ベルのフィードバックに対して制御 できる属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     percent;
        int     pitch;
        int     duration;
} XBellFeedbackControl;

XLedFeedbackControl 構造体は、LED のフィードバックに対して制御で きる属性を定義する。

typedef struct {
        XID     class;
        int     length;
        XID     id;
        int     led_mask;
        int     led_values;
} XLedFeedbackControl;
 

返り値

BadDevice

BadMatch
このエラーは、フィードバックを持たないデバイスを指定して XGetFeedbackControl リクエストを行った場合や、フィードバックのタ イプが不正である XFeedbackControl 構造体を使って、 XChangeFeedbackControl リクエストを行った場合に起こる。 不正なマスクビット値の組合せを用いた場合や(キーボードのフィードバック に対して DvAutoRepeatMode 無しの DvKey を用いる等)、文字列 のフィードバックに対して不正な KeySym を指定した場合にも、このエラーが 起こる。
BadValue
指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。
 

関連項目


Programming With Xlib


 

Index

名前
書式
引き数
説明
構造体
返り値
関連項目

jman



Time: 07:00:50 GMT, January 12, 2009