![]() |
libusb 1.0.24
USBデバイスにアクセスするためのクロス・プラットフォームのユーザー・ライブラリ
|
マクロ | |
#define | LIBUSB_CALL |
#define | LIBUSB_API_VERSION 0x01000108 |
#define | libusb_le16_to_cpu libusb_cpu_to_le16 |
関数 | |
int | libusb_has_capability (uint32_t capability) |
const char * | libusb_error_name (int error_code) |
const struct libusb_version * | libusb_get_version (void) |
static uint16_t | libusb_cpu_to_le16 (const uint16_t x) |
int | libusb_setlocale (const char *locale) |
const char * | libusb_strerror (int errcode) |
変数 | |
static const char *const | usbi_locale_supported [] = { "en", "nl", "fr", "ru", "de", "hu" } |
#define LIBUSB_CALL |
libusbのWindows呼び出し規約。
Windowsでは、使用可能なコンパイラと構成を選択できるので、他のプラットフォームとは異なり、ただ唯一の呼び出し規約(生成されたアセンブリ・コードでパラメーターを関数に渡す方法)でないことを意味します。
libusbは、Windows
API自体と一致するWINAPI規則(stdcall
呼び出し規則に変換されます)を使用し、ライブラリがこの方法でコンパイルされることを保証します。
パブリック・ヘッダー・ファイルには適切なアノテーションも含まれているため、コード・ベース内でデフォルトで別の規則が使用されている場合でも、あなたのソフトウェアは正しい規則を使用します。
ソフトウェアに適用する必要がある1つの考慮事項は、libusbコールバックとして使用するすべての関数にこのLIBUSB_CALLアノテーションを付けて、それらも正しい呼び出し規約に合わせてコンパイルされるようにすることです。
Windows以外のオペレーティング・システムでは、このマクロは何も定義されていません。 これは、クロス・プラットフォームの互換性を気にせずにコードに適用できることを意味します。
#define LIBUSB_API_VERSION 0x01000108 |
libusbのAPIバージョン。
バージョン1.0.13以降、機能の検出を支援するために、libusbはLIBUSB_API_VERSIONマクロを定義します。このマクロは、新しい呼び出しの導入、新しいマクロ/列挙型メンバーの定義など、APIに大幅な変更が加えられるたび、または、libusbアプリケーションがコンパイル時に検出する可能性のあるその他の要素のたびに増加します。
マクロは通常、アプリケーションで以下のように使用されます:
内部的にはLIBUSB_API_VERSIONは次のように定義されています: (libusb major << 24) | (libusb minor << 16) | (16 bit incremental)
#define libusb_le16_to_cpu libusb_cpu_to_le16 |
16ビット値をリトル・エンディアンからホスト・エンディアン形式に変換します。リトル・エンディアン・システムでは、この関数は何もしません。ビッグ・エンディアンシステムでは、バイトが交換されます。
x | 変換したいリトル・エンディアンの値 |
USB3.0仕様の表9-5で定義されている標準要求
enum libusb_request_type |
制御転送の bmRequestType フィールドの要求タイプビット。
列挙型 | |
---|---|
LIBUSB_REQUEST_TYPE_STANDARD | 標準。 |
LIBUSB_REQUEST_TYPE_CLASS | クラス。 |
LIBUSB_REQUEST_TYPE_VENDOR | ベンダー。 |
LIBUSB_REQUEST_TYPE_RESERVED | 予約済。 |
制御転送の bmRequestType フィールドの受信側ビット。値4〜31は予約済です。
列挙型 | |
---|---|
LIBUSB_RECIPIENT_DEVICE | デバイス。 |
LIBUSB_RECIPIENT_INTERFACE | インターフェイス。 |
LIBUSB_RECIPIENT_ENDPOINT | エンドポイント。 |
LIBUSB_RECIPIENT_OTHER | その他。 |
enum libusb_error |
エラー・コード。 ほとんどのlibusb関数は、成功すると0を返し、失敗するとこれらのコードの1つを返します。 libusb_error_name() を呼び出してエラー・コードの文字列表現を取得するか、 libusb_strerror() を呼び出してエンド・ユーザーに適切なエラー・コードの説明を取得できます。
enum libusb_capability |
現在実行中のプラットフォーム上のlibusbのインスタンスによってサポートされる機能。 libusb_has_capability() を呼び出して、ロードされたライブラリが指定の機能をサポートしているかどうかをテストします。
列挙型 | |
---|---|
LIBUSB_CAP_HAS_CAPABILITY | The libusb_has_capability() API is available. |
LIBUSB_CAP_HAS_HOTPLUG | このプラットフォームでは、活線挿抜(hotplug)のサポートを利用できます。 |
LIBUSB_CAP_HAS_HID_ACCESS | ライブラリは、ユーザーの介入を必要とせずにHIDデバイスにアクセスできます。 注意: 実際にHIDデバイスにアクセスする前に、 libusb_detach_kernel_driver() などの追加のlibusb関数を呼び出す必要がある場合があることに注意してください。 |
LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER | ライブラリは、OSカーネルによって設定されている場合、 libusb_detach_kernel_driver() を使用したデフォルトのUSBドライバーの取り外しをサポートします。 |
int libusb_has_capability | ( | uint32_t | capability | ) |
ロードされたライブラリに指定の機能があるかどうかを実行時に確認します。 この呼び出しは、libusb_init() の後に実行して、バックエンドが機能セットを更新したことを確認する必要があります。
機能 | the libusb_capability to check for |
const char* libusb_error_name | ( | int | error_code | ) |
libusbエラーまたは転送ステータ・スコードのASCII名を含むNULLで終了する定数文字列を返します。呼び出し元は、返された文字列を free() してはいけません。
error_code | 名前を返す libusb_error または libusb_transfer_status コード。 |
const struct libusb_version* libusb_get_version | ( | void | ) |
実行中のライブラリのバージョン(major、 minor、 micro、 nano、 rc)を含む へのポインタを返します。
|
inlinestatic |
16ビット値をホスト・エンディアン形式からリトル・エンディアン形式に変換します。リトル・エンディアン・システムでは、この関数は何もしません。ビッグ・エンディアン・システムでは、バイトが交換されます。
x | 変換したいホスト・エンドポイント値 |
int libusb_setlocale | ( | const char * | locale | ) |
言語を設定します。エンコーディングではなく言語のみを設定してください!翻訳可能なlibusbメッセージに使用されます。
これは、デフォルトのsetlocale形式のロケール文字列を取ります。lang[-region] または lang[_country_region][.codeset] です。文字列のlang部分のみが使用され、 "de" などの2文字の ISO 639-1 コードのみが受け入れられます。 オプションのregion、country_region、codesetの部分は無視されます。 これは、翻訳可能な文字列を返す関数が指定したエンコーディングを尊重しないことを意味します。返されるすべての文字列は、UTF-8文字列としてエンコードされます。
libusb_setlocale() が呼び出されない場合、すべてのメッセージは英語になります。
次の関数は翻訳可能な文字列を返します: libusb_strerror() 注意: libusb_set_debug() を介して制御されるlibusbログ・メッセージは翻訳されておらず、常に英語であることに注意してください。
POSIX UTF-8環境で、libusbを標準のロケール設定に準拠させたい場合は、アプリがロケール設定を行った後、 libusb_setlocale(setlocale(LC_MESSAGES, NULL)) を呼び出します。
locale | lang[_country_region][.codeset] または lang[-region]lang [_country_region] 形式のロケール文字列。ここで、langは2文字の ISO 639-1 コードです。 |
const char* libusb_strerror | ( | int | errcode | ) |
指定されたエラー・コードの簡単な説明を含む文字列定数を返します。この説明はエンド・ユーザーに表示することを目的としており libusb_setlocale() によって設定された言語になります。
返される文字列はUTF-8でエンコードされます。
メッセージは常に大文字で始まり、ピリオドなしで終わります。呼び出し元は返された文字列を free() してはいけません。
errcode | 説明が必要なエラー・コード |
|
static |
新しい libusb_strerror() 翻訳を追加する方法:
strerror.c
を以下からダウンロードします:usbi_locale_supported
[] の最後に、ロケールの2文字の ISO 639-1
コードを追加します。{ / * English (en) * / ... }
部分をコピって、usbi_localized_errors
の最後に追加します usbi_localized_errors
の最後の部分は以下のようになります: libusb-devel@lists.sourceforge.net
に送信します。