Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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

名称

XGetDeviceMotionEvents, XDeviceTimeCoord − デバイスの動作履歴を得る

形式

XDeviceTimeCoord ∗XGetDeviceMotionEvents(display, device, start, stop,
nevents_return, mode_return, axis_count_return)
      Display ∗display;
      XDevice ∗device;
      Time start, stop;
      int ∗nevents_return;
      int ∗mode_return;
      int ∗axis_count_return;

引数

display X サーバとの接続を指定する。

device 要求する動作履歴のデバイスを指定する。

start

stop 動作履歴バッファからイベントが戻される間隔を指定する。 タイムスタンプまたは CurrentTime を指定できます。

nevents_return
動作履歴バッファからイベント数を返します。

mode_return デバイスモード (Absolute または Relative) を返します。

axis_count_return
報告される軸の数を返します。

解説

サーバはデバイスの最近の動作履歴をDeviceMotionNotify イベントよりも いわゆる『細かい粒度』で保持します。 XGetDeviceMotionEvents リクエストはこの履歴を有効にします。

XGetDeviceMotionEvents リクエストは 開始、終了時間の範囲内に ある稼働履歴バッファの全てのイベント を返します。 開始時刻が停止時刻より遅かったり、 開始時刻が現在時刻より後に設定してあると、 イベントは返されません。 停nn止時刻が現在より後の場合、 CurrentTime の指定と同様になります。

mode はデバイスが絶対位置データ (mode=Absolute) を報告するか、または相対的な移動データ (mode=Relative) を報告するかを示します。 XSetDeviceMode リクエストを経由して、 いくつかのデバイスはモードを変更できます。 これらの定数はファイル XI.h にて定義します。 axis_count はデバイスによって報告されるバリュエータまたは 軸の数を返します。

XGetDeviceMotionEvents は BadDevice または BadMatch エラーを返すことがあります。

構造体

XDeviceTimeCoord 構造体を以下に示します。

typedef struct {
Time time;
int ∗data;
} XDeviceTimeCoord;

時刻 (time) はミリ秒単位で設定。 日付 (date) はある整数の配列へのポインタです。 これらの整数はデバイスによって報告される 各バリュエータまたは軸の値として設定されます。 デバイスによって報告される稼働の軸毎に 一つのエレメントがあります。 配列のエレメントの値はデバイスのモードによって変化します。 そのモードが Absoluteの場合、 その値はデバイスが生成するままの値となります。 これらはデバイスが生成できる最大値を使用する クライアントプログラムによって計測できます。 デバイスの各軸に対する最大値は XListInputDevices リクエストによって 返される XAxisInfo の max_val フィールドにて報告されます。 モードが Relative の場合、 そのデータ値はデバイスにより生成される 相対値となります。

このリクエストによって返されるデータを開放するため、 XFreeDeviceMotionEvents を使用します。

このリクエストによって返されるエラー: BadDevice, BadMatch。

自己診断

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

BadMatch XGetDeviceMotionEvents リクエストが バリュエータを持たず、稼働の軸を持たないデバイス を指定することで実行される場合、 このエラーが発生します。

関連事項

Programming with Xlib

NEWS-OSRelease 4.2.1R

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