So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

Bluetooth 3.0 と 2.0+EDR の接続 [VGC-RM95S]

Bluetooth 3.0 Motorola Stack と VGC-RM95S の ALPS/CSR 2.0 EDR MS Stack の接続についてまとめてみる。3.0 同士はサクっとつながるし 2.1 もペアリングコードをいれればつながる。ところが 2.0 EDR では以下のようにしないとダメだった。

(1) 3.0 側の "My Bluetooth" でサービスの接続をおこなうか 2.0 側から個別サービス接続をおこなう
(2) 次に 2.0 側からペアリングコードなしで接続をおこなう

手順の (1) をやらないと (2) でペアリングエラーとなってしまう。これで見かけ上うまくいったことになる。少なくとも HSP と A2DP はこれでいけた。

Motorola_stereo.pngMotorola_headset.png

2.0 からのAVRCP は接続が拒否されているように見える。本来なら 3.0 に「リモート制御」なるサービスが見えて、これを選択する必要がある。それにしても A2DP SRC 側が 3.0 だと文句なしに安定している。

SCMS-T [VGC-RM95S]

A2DP のオプションとして SCMS-T と AVRCP としてみた。

scms_t.png

SCMS-T はイメージとしては難しそうだが、データ転送では1バイトがヘッダに付与されるだけである。ネゴシエーションも以下のようにするだけである。

  // 1
  cap_scms_resp.serv_cap=MEDIA_TRANSPORT_CATEGORY;
  cap_scms_resp.serv_cap_len=0;
  // 4
  cap_scms_resp.cp_type = MEDIA_CONTENT_PROTECTION;
  cap_scms_resp.cp_type_length = 2;
  cap_scms_resp.cp_type_lsb = (CP_TYPE_SCMS_T & 0xFF);
  cap_scms_resp.cp_type_msb = (CP_TYPE_SCMS_T >> 8) & 0xFF;
  // 7
  cap_scms_resp.cap_type=MEDIA_CODEC;
  cap_scms_resp.cap_type_length=6;

ところが VAIO の WIDCOMM の A2DP については、このネゴシエーション以前に何かきている。Toshiba のスタックや CSR のスタックでは、まったく問題ない。

AVRCP [VGC-RM95S]

Windows 7 MS Stack で AVRCP の表示ができたり、できなかったりしている。MS STack の問題というより SDP のレコードの解釈がバラバラということのようである。そもそも、どのように表示されるか分からなかったので RedHat 6.0 がどのように応答しているかを見てみた。

 AVRCP.png

上の段が Target をサポートしている場合、下段が Controller をサポートしている場合である。Controller の場合は SDP に登録していない場合が多いので見えない場合がある。また ヘッドセット側が Target になっていて Play, Pause などを逆に発行する場合もあるようだ。メーカのカタログには、どちらをサポートしているか明記すべきだと思う。

ちなみに AVRCP は RFCOMM ではなく L2CAP 上なので MS Stack の場合、簡単なドライバが必要になる。

skype crash [VGC-RM95S]

"bcdedit -debug on" の状態で skype をインストールすると、起動時に Kernel から応答がなくなることが判明した。同様の現象が tomshareware.com でも報告されていた。

リバースエンジニアリングのブロックかもしれないが、純粋にドライバを開発している技術者にとっては、不快感を感じる。同様の現象を体験された方の参考になればと思う。

Bluetooth Feature Pack 5.0.14 [VGC-RM95S]

CSR Plc. の Bluetooth Feature Pack 5.0.14 64bit 版を VGC-RM95US に入れてみた。これで A2DP の Source 側になるので Streams Jockey をいれた VGC-RM95S が A2DP の Sink 側になり、さらに VGC-RM94S のスピーカで流してみた。

csr_help.png

VGC-RM95S がオーディオ出力 Bluetooth Audio Renderer のデフォルトとして設定できる。

A2DP_sink.png

これで Radiko の音声や YouTube のサウンドを 44.1kHz Stereo で録音できることになる。

streams_jockey_003.png

我が Streams Jockey は、この Feature Pack の反対の機能を実現しているこになるので試験相手としてちょうどよい。Skype は HFP でうまくいかなかったので HSP でやってみよう。応用範囲が広がってきた。

続きを読む


Sony Calibration Microphone [VGC-RM94S]

ECM-AC2 を使ってリビングの音を自分の部屋まで配信してみた。部屋の隅々の音まで聞こえるので 電話の音やドアホンの音がよく聞こえる。

ECM-AC2.pngECM-AC2

これは AV アンプ TA-DA3200 に付属していたのだが ECM-AC1 というのがどういうものか調べてみた。現行モデルの最上位 TA-DA5700 に付属しているようだ。2点式となっている。

ECM-AC1_3.pngECM-AC1

デスクトップ用だとマイク周辺の音はよく拾ってくれるのだが、音場としてはこちらの方がいい。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

Play A2DP - Timer Driven vs. Event Driven [VGC-RM95S]

A2DP の再生方法を Timer Driven と Event Driven でかなり比較してみた。ローカルのファイルを再生している場合は違いは出てこない。しかし Stream 転送して再生する場合は Timer Driver は不安定になる。何度やっても同じなので、手間はかかるが Event Driver の方が安定している。

[Timer Driven]
hEvRead = timeSetEvent(nInterval, 1, readEvent, (DWORD) NULL, TIME_PERIODIC);
hEvPlay = timeSetEvent(nInterval, 1, playEvent, (DWORD) NULL, TIME_PERIODIC);

[Event Driven]
case MM_WOM_OPEN:
a2dp_startWaveOut(hWnd);
break;
case MM_WOM_DONE:
a2dp_doneWaveOut(wP, lP);
break;

「MS Stack で A2DP Sink がすぐに出来ない」 や 「MS Stack で Bluetooth 3.0 は出来ない」 というブログをよく見かけるが、これらは誤解であるということを明記しておきたい。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。