Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XGetFeedbackControl(3XI) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

XGetFeedbackControl(3XI)  —  NEWS-OS Programmer’s Manual

名称

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 (ファイル XI.h に定義) と同じ値を持つ XInputClassInfo 構造体を返します。

XGetFeedbackControl リクエストは XFeedbackState 構造体のリストへの ポインタを返します。 リストの各項目はデバイスがサポートするフィードバックを記述します。 項目の長さは可変で、リスト内の次の項目に移れるように長さを格納してい ます。

現在定義されているフィードバッククラス:  KbdFeedbackClass、 PtrFeedbackClass、 StringFeedbackClass、 IntegerFeedbackClass、 LedFeedbackClass、 および BellFeedbackClass。 これらの定数はファイル XI.h に定義されています。 入力デバイスは 0 個以上のフィードバッククラスを サポートでき、同一クラスに複数のフィードバックをサポートします。 各フィードバックはクラス識別子、ID を持ち、 それは入力デバイスに関するクラスの中でユニークです。 ID は XChangeFeedbackControl リクエストを作成するときに、 フィードバックを識別するために使用されます。

XGetFeedbackControl は BadDevice または BadMatch エラーを生成します。

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

XChangeFeedbackControl は BadDevice、 BadMatch、または BadValue エラーを 生成します。

構造体

フィードバックの各クラスはそのクラスに特有の構造体によって記述されます。 これらの構造体は、ファイル XInput.h に定義されています。 XFeedbackState および XFeedbackControl はフィードバックの各クラスの先頭にある 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;

XLed[8~FeedbackControl 構造体は LED フィードバック に対してコントロールされる属性を定義します。

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

自己診断

BadDevice 無効デバイスが指定された。 指定デバイスが存在しない、 または XOpenInputDevice を経由してこのクライアントによってオープンされていない。 XChangeKeyboardDevice または XChangePointerDevice リクエスト を経由して、 他のいくつかのクライアントが指定デバイス を X キーボードまたはX ポインタにしようとした場合、 このエラーが発生します。

BadMatch XGetFeedbackControl リクエスト がフィードバックを持たないデバイス を指定することで実行されたり、 または XChangeFeedbackControl リクエストが 無効なフィードバックタイプを持つ XFeedbackControl 構造体によって 実行された場合、 このエラーが発生します。 マスクビットの無効な組合せが指定されたり (キーボードフィードバックに対して DvAutoRepeatMode でなく DvKey)、 またはストリングフィードバックに対して 無効な KeySym が指定された場合も発生します。

BadValue いくつかの数値が XChangeFeedbackControl リクエスト で認められた範囲外である。 指定の範囲が引数に関して指定された場合を除いて、 引数のタイプで認められた範囲全てが認められます。 二者択一のセットで定義された引数の場合、 このエラーが発生します。

関連事項

Programming With Xlib

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026