newValueは、parameterのデータへのポインタであり、valueSizeはデータの大きさを定義します。Serverまたはroster内のnodeと交信中にエラーが生じた。0あなたは、valueポインタによって示されるメモリの中で、指定されたparameterIDのparameterの値を保存するようにGetParameterValue()を実装しなければなりません。ioSizeポインタによって示されるsize_tの値は、値のバッファの大きさを指定します。関数が返るより前に、返されるデータの実際の大きさにioSizeを変更するようGetParameterValue()が実装されます。同様に、lastChangeTimeをcontrolの値が変更された最も最近の時間に設定して下さい。GetParameterValue()は、処理が終了したらB_OKを返します。何か問題が生じれば、適切なエラーコードを返します。同様に、parameterの値を変更するためにSetParameterValue()を実装して下さい。言い換えれば、要求された時間に要求が扱われるように、それをキューに入れる必要があります。valueはparameterにセットされる値のポインタを示し、sizeはvalueのデータのバイト数となります。そのparameterがマルチチャンネルのparameterであれば、ひとつのparameterが値のチャンネルを複数持つ可能性があります。size)nodeのサービスループがmessageを受け取る際、BMediaNodeや他のあなたのnodeのスーパークラスに渡すのに加えて、それをBControllable::HandleMessage()にも渡して下さい。派生クラスの最外殻(下流)のHandleMessage()の実装から開始し、B_OKが返されるまで基底クラス(上流)の方向に任意の処理を行って下さい。メッセージがBControllableのインターフェイスに対して企図されたものであれば、それはディスパッチされ、B_OKが返されます。なければ、HandleMessage()はエラーを返します。これによって、あなたは他に何か試す必要があるということを知ります。}この例では、BControllableのHandleMessage()実装がそのメッセージを扱う最初の機会を得ます。その実装がメッセージの扱い方を知らなければ、そのメッセージはBMediaNodeの実装に転送されます。メッセージがまだ扱われていなければ、その後にデフォルトのBMediaNode::HandleBadMessage()に送られます。メッセージはディスパッチされた。各々のmessageコードは、種々のエラーコードで応答する。UnlockParameterWeb(void)LockParameterWeb()は、あなたがweb上で作業している間、webへのアクセスを妨げるためにそれをロックします。UnlockParameterWeb()は、作業が終了する際にそれを解放します。あなたは、webへのアクセスをこれらの呼び出しで囲まなければなりません。IDのリストを取り、ioSizeで指定されたサイズが満たされるまで指定されたbufferに値を保存するように、それぞれのparameterに対してGetParameterValue()を呼び出します。使用されたバッファのバイト数は、ioSizeに返されます。あなたのBControllableが、入力からB_MEDIA_PARAMETERSタイプのデータを受け入れるBBufferConsumerでもあれば、valueにBBuffer::Data()の結果を、sizeにBBuffer::Size()の結果をセットしてApplyParameterData()を呼び出して下さい。この関数は、バッファのparameter変更要求を解析し、要求を実行する目的でSetParameterValue()関数を呼び出すために、それらをディスパッチします。これによって、あなたのnodeはparameter情報の自動化を簡単にサポートできます。それ以上に、BBufferProducerから派生することによっても、またB_MEDIA_PARAMETERSデータフォーマットの出力を供給することでも利益が得られ、それ故に、変更はそれが生じた様に記録されうるのです。これは、それらへのユーザの変更を記録し、その後その変更を再現することによって、parameterの自動化機構を供給します。出力bufferは小さすぎる。*Web(void)コンストラクタはBParameterWebオブジェクトを生成し、それを引数としてSetParameterWeb()を呼び出します。これは、どのparameterが使用でき、それらがお互いにどう関連しているのかという外部の世界を記述します。言葉を換えれば、これは内部のシグナル経路と、それがどうやって操作されるかを記述します。引数のwebがNULLでなく、以前にBControllableのnodeに対して確立されたwebとは異っていた場合、B_MEDIA_WEB_CHANGEDメッセージがメディア通知を監視している全てのものに送られます。詳細は、StartWatching()をご覧下さい。SetParameterWeb()は、もしwebがエラーなしに設定されればB_OKを返すでしょう。なければ、エラーコードが返されるでしょう。Web()関数は、BControllableに割り当てられたBParameterWebを返します。*outMessenger)このフック関数は、クライアントアプリケーションがnodeに対して(ユーザがnodeを設定できるように)nodeの制御パネルのユーザインターフェイスを公開させたい場合に呼び出されます。この関数が返る際には、outMessengerが制御パネルと対話するために使用できるBMessengerとなります。Serverの内部で動作し、ユーザインターフェイスの問題がシステム全体に及ぶ可能性があるため、制御パネルは自分自身のteamとして動作することが推奨されます。add-onと(main()を実装し、リンクライブラリにstart_dyn.oを含むことによって)アプリケーションの両方で書くことにより、簡単に実現できます。applicationフラグをあなたのadd-onにセットして下さい。ないと、これは正しく動作しないでしょう。その後、StartControlPanel()の実装は、単純にadd-onをアプリケーションとして起動できます。ユーザがadd-onをダブルクリックすれば、add-onは制御パネルを公開するでしょう。加えて、ユーザはadd-onを適切に動作させるために、ひとつのファイルをインストールするだけですむという利益を得ます。IDが"%d"に該当する"node=%d"のフォーマットの文字列です。(アプリケーションとしてadd-onを起動することによってあなたの制御パネルから供給される)上記の実装からは、StartControlPanel()のデフォルトの振る舞いが示唆されます。したがって、もしそれがBControllableを実装する方法であれば、あなたはStartControlPanel()をオーバーライドする必要が全くありません。このケースでは、返されたBMessengerは制御パネルアプリケーションに対するものであり、それが内包される特定のBWindowやBViewではありません。エラーは生じなかった。add-onからnodeがロードされなかった。nodeが読み込まれたimageの位置を確認する際にエラーが生じたか、或いはadd-onがアプリケーションとして起動できなかった。制御パネルは、メモリ不足といった他の何らかの理由で起動できなかった。reserved..。