libusbを使用してUCG102(Guitar Link)USBデバイスと通信しており、同期制御要求を使用してサンプリングレートを設定すると、-9(LIBUSB_ERROR_PIPE、つまりパラメーターがサポートされていないことを意味します)を取得しています。LIBUSBによってログに記録された基本的なリクエストの詳細は次のとおりです。仕様に従って3バイトのバッファにあるため、実際のサンプルレートを確認することはできません。
03-02 14:33:13.173: I/LIBUSB(9480): bmRequestType=22, bRequest=01, wValue=0100, wIndex=0084, wLength=0003
sampleRate値を設定するコード
byte[] param2 = new byte[3];
param2[2] = (byte)(sampleRate >> 16); //0x44;
param2[1] = (byte)(sampleRate >> 8); // 0xAC;
param2[0] = (byte) (sampleRate & 0xff); //0x00;
同じコードが他の多くのUSBオーディオデバイスでも機能します。次に、アイソクロナスオーディオを実行します(これはUCG102で機能しますが、希望する速度では機能しません)。
サンプリングレートはデバイス記述子から選択されているため、このデバイスでサポートされていることがわかります。
だから問題は、どうすればサンプルレートを設定できるかということです。この前に私がしなければならないことがありますか(はい、私はすでに他のすべてのインターフェースを切り離してから、必要なインターフェースを要求しました)。一部のデバイスは、 USBオーディオ仕様が示唆する以外の方法で表現されたサンプルレートを期待していますか?
直接答えられない場合は、誰かが私のUSBデバイスと通信するWindowsまたはFedoraライブラリ/アプリケーション(オーディオ目的)を指定し、すべてのLIBUSB呼び出しをログアウトして、動作していること(またはオープンソース)を確認できる可能性がありますだから私はそれに自分のデバッグを入れることができます)。
どうぞよろしくお願いいたします。