translation:working:翻訳2

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
translation:working:翻訳2 [2015-01-21 18:08]
Decomo [AudioObject系ルーチン]
translation:working:翻訳2 [2018-05-07 22:48] (現在)
Decomo
行 4: 行 4:
  
 オーディオHALは、それを通してアプリケーションがオーディオハードウェアへのアクセスを可能にする、抽象的概念を提供する。 オーディオHALは、それを通してアプリケーションがオーディオハードウェアへのアクセスを可能にする、抽象的概念を提供する。
-これを達成するために、HALはシステムの様々な構成部位へのアクセスを行う、小さなAudioObjectセットを備える。+これを達成するために、HALはシステムの様々な構成部位へのアクセスを行う、小さな''AudioObject''セットを備える。
  
-全てのAudioObjectはプロパティの集合を持ち、状態の取得や操作を行うことが出来る。プロパティは三次元座標(ordered triple)的にアクセスされる。+全ての''AudioObject''はプロパティの集合を持ち、状態の取得や操作を行うことが出来る。プロパティは三次元座標(ordered triple)的にアクセスされる。
 1つめの軸はプロパティを分類する(describe)セレクタである。 1つめの軸はプロパティを分類する(describe)セレクタである。
-他の2つの軸はAudioObjectの特定の部分を識別するスコープとエレメントで、その中からセレクタを探す。 +他の2つの軸は''AudioObject''の特定の部分を識別するスコープとエレメントで、その中からセレクタを探す。 
-AudioObjectPropertyAddress構造体はプロパティのアドレスをカプセル化する。+''AudioObjectPropertyAddress''構造体はプロパティのアドレスをカプセル化する。
 プロパティの値は型付けされていないデータブロックで、その内容はセレクターの仕様に依存する。 プロパティの値は型付けされていないデータブロックで、その内容はセレクターの仕様に依存する。
 いくつかのセレクタは問い合わせ時に修飾データ(qualifier)を要求する。 いくつかのセレクタは問い合わせ時に修飾データ(qualifier)を要求する。
行 15: 行 15:
 プロパティ値の変化は常に非同期であることを考慮せよ。 プロパティ値の変化は常に非同期であることを考慮せよ。
  
-アプリケーションは AudioObjectHasProperty(), AudioObjectIsPropertySettable() and AudioObjectGetPropertyDataSize() ルーチンを使い、プロパティに関する有益なメタ情報を取得する。 +アプリケーションは''AudioObjectHasProperty()''''AudioObjectIsPropertySettable()''と''AudioObjectGetPropertyDataSize()'' ルーチンを使い、プロパティに関する有益なメタ情報を取得する。 
-また、アプリはAudioObjectGetPropertyData()とAudioObjectSetPropertyData()でプロパティの値を操作する。 +また、アプリは''AudioObjectGetPropertyData()''''AudioObjectSetPropertyData()''でプロパティの値を操作する。 
-アプリはAudioObjectAddPropertyListener()とAudioObjectRemovePropertyListener()で、プロパティの値が変化した際に呼ばれる関数の登録と削除を行う。 +アプリは''AudioObjectAddPropertyListener''()と''AudioObjectRemovePropertyListener()''で、プロパティの値が変化した際に呼ばれる関数の登録と削除を行う。 
-The class of an AudioObject determines the basic functionality of the object in terms of what functions will operate on it as well as the set of properties that can be expected to be implemented by the object. +''AudioObject''のクラスは、どの機能がオブジェクトに作用するのか、またオブジェクトが実装する事を期待されるプロパティセットの観点から、そのオブジェクトの基本機能を決定づける。
 オブジェクトのために利用可能なクラスセットは、ここで定義されているものに限られる。 オブジェクトのために利用可能なクラスセットは、ここで定義されているものに限られる。
 これら以外のクラスは存在しない。 これら以外のクラスは存在しない。
 クラスセットは、あるクラスがその親クラスのプロパティやルーチンを継承するといった、階層構造にまとめられている。 クラスセットは、あるクラスがその親クラスのプロパティやルーチンを継承するといった、階層構造にまとめられている。
  
-全てのAudioObjectクラス群の基底クラスがAudioObjectクラスである。 +全てのAudioObjectクラス群の基底クラスが''AudioObject''クラスである。 
-そのようなものとして、AudioObjectクラスは、分類人間が読める名前といった基本プロパティを提供し、各々のAudioObjectオブジェクトはそれらを持つ。 +そのようなものとして、''AudioObject''クラスは、分類付けや人間が読める名前といった基本プロパティを提供し、各々のAudioObjectオブジェクトはそれらを持つ。 
-他の重要なクラスとして、AudioSystemObject, AudioDeviceそしてAudioStreamがある。+他の重要なクラスとして、''AudioSystemObject''''AudioDevice''そして''AudioStream''がある。
  
 HAL中のAudioObjectは包含階層で並べられている。 HAL中のAudioObjectは包含階層で並べられている。
-階層の根本は1つで、それはAudioSystemObjectクラスの唯一のインスタンスである。 +階層の根本は1つで、それは''AudioSystemObject''クラスの唯一のインスタンスである。 
-AudioSystemObjectのプロパティは、様々なデフォルトデバイスや通知ランループといった、プロセス全体にまたがる設定を表す。 +''AudioSystemObject''のプロパティは、様々なデフォルトデバイスや通知実行ループといった、プロセス全体にまたがる設定を表す。 
-またAudioSystemObjectは利用可能な全てのAudioDeviceを持つ。+また''AudioSystemObject''は利用可能な全ての''AudioDevice''を持つ。
  
-AudioDeviceクラスのインスタンスは個々のオーディオ装置をカプセル化したものである。 +''AudioDevice''クラスのインスタンスは個々のオーディオ装置をカプセル化したものである。 
-AudioDeviceはIOの基本ユニットとしての役割を果たす。 +''AudioDevice''I/Oの基本ユニットとしての役割を果たす。 
-1つのIOサイクルを提供しサイクルに基づくタイミングソースや全てのバッファサイクルの同期を提供る。 +''AudioDevice''は、1つのI/Oサイクル、それに基づくタイミング源、そしてそれに同期する全てのバッファを提供する。 
-The IO cycle presents all the synchronized buffers to the client in the same call out along with time stamps that specify the current time, when the input data was acquired and when the output data will be presented. +I/Oサイクルは同一呼び出し内で、全ての同期されたバッファ現在時間を指定するタイムスタンプと伴にクライアントに提供し、そしてその際、入力データが獲得され、また出力データも渡されだろう
  
-AudioDeviceはAudioStreamクラスのインスタンスを含む。 +''AudioDevice''''AudioStream''クラスのインスタンスを含む。 
-AudioStreamはユーザー・カーネル領域にまたがって転送されるデータの1つのバッファを表す。 +''AudioStream''はユーザー・カーネル領域にまたがって転送されるデータの1つのバッファを表す。 
-それだけに、AudioStreamはフォーマット情報の門番である。+それだけに、''AudioStream''はフォーマット情報の門番である。
 各々がそれ自身のフォーマットと利用可能なフォーマットの一覧を持っている。 各々がそれ自身のフォーマットと利用可能なフォーマットの一覧を持っている。
-AudioStreamは、エンコードされたフォーマットや非オーディオフォーマットを含む、あらゆる形式のデータを提供することが出来る。+''AudioStream''は、エンコードされたフォーマットや非オーディオフォーマットを含む、あらゆる形式のデータを提供することが出来る。
 フォーマットがリニアPCMの場合、そのデータは常にネイティブエンディアンの32ビット浮動小数点数として表される。 フォーマットがリニアPCMの場合、そのデータは常にネイティブエンディアンの32ビット浮動小数点数として表される。
 ハードウェアの実際の物理フォーマットとの全ての変換は、デバイスドライバーによって行われる。 ハードウェアの実際の物理フォーマットとの全ての変換は、デバイスドライバーによって行われる。
  
-AudioDeviceとAudioStreamの両者は、AudioControlクラスあるいはその多くのサブクラスのインスタンスを含むことが出来る。 +''AudioDevice''''AudioStream''の両者は、''AudioControl''クラスあるいはその多くのサブクラスのインスタンスを含むことが出来る。 
-AudioControlは、ゲイン、ミュート、データソース選択などといった、そのオブジェクトの特定の側面を表し、操作するプロパティを提供する。 +''AudioControl''は、ゲイン、ミュート、データソース選択などといった、そのオブジェクトの特定の側面を表し、操作するプロパティを提供する。 
-多くの共通コントロールは、AudioDeviceかAudioStreamのプロパティとして利用可能である。+多くの共通コントロールは、''AudioDevice''''AudioStream''のプロパティとして利用可能である。
  
 ===== AudioDevice系ルーチン ===== ===== AudioDevice系ルーチン =====
行 85: 行 85:
 |< - 4em >| |< - 4em >|
 ^AudioDeviceGetNearestStartTime^^^ ^AudioDeviceGetNearestStartTime^^^
-^  説明 Query an AudioDevice to get a time equal to or later than the given time that is the best time to start IO||+^  説明 ''AudioDevice''に時刻を渡し、予時刻と同じかそれ以降となる最適なIO開始時刻を取得する。||
 ^  引数  | AudioDeviceID inDevice | 問い合わせるAudioDevice | ^  引数  | AudioDeviceID inDevice | 問い合わせるAudioDevice |
 ^  :::   | AudioTimeStamp*ioRequestedStartTime | AudioTimeStampのポインタで、入力では要求開始時間を入れる。出力では、要求時間と同値ないし、それ以降が返る。これはそのデバイスの制限によって決定される。| ^  :::   | AudioTimeStamp*ioRequestedStartTime | AudioTimeStampのポインタで、入力では要求開始時間を入れる。出力では、要求時間と同値ないし、それ以降が返る。これはそのデバイスの制限によって決定される。|
行 363: 行 363:
   ? kAudioDevicePropertyModelUID   ? kAudioDevicePropertyModelUID
     : **CFString**     : **CFString**
-    : AudioDeviceの型番の永続的な識別子。The identifier is unique such that the identifier from two AudioDevices are equal if and only if the two AudioDevices are the exact same model from the same manufacturer. 加えて、識別子はそのAudioDeviceが現れるマシンを問わず同一であるべきである。+    : AudioDeviceの型番の永続的な識別子。この識別子は、たとえ2つのAudioDeviceが同一製造元の全く同一のモデルだったとしても一意である。加えて、識別子はそのAudioDeviceが現れるマシンを問わず同一であるべきである。
   ? kAudioDevicePropertyTransportType   ? kAudioDevicePropertyTransportType
     : **UInt32**     : **UInt32**
行 378: 行 378:
   ? kAudioDevicePropertyDeviceHasChanged   ? kAudioDevicePropertyDeviceHasChanged
     : **UInt32** (ただし値に意味はない)     : **UInt32** (ただし値に意味はない)
-    : The type of this property is a UInt32, but it's value has no meaning. This property exists so that clients can listen to it and be told when the configuration of the AudioDevice has changed in ways that cannot otherwise be conveyed through other notifications. In response to this notification, clients should re-evaluate everything they need to know about the device, particularly the layout and values of the controls.+    : このプロパティは、 クライアントによる''AudioDevice''の監視と、さもなければ他の通知方法では伝播されないデバイスの設定変更を知るために存在する。この通知に応えて、クライアントはそのデバイスについて知る必要のある事項、とりわけレイアウトとコントロール値を再評価すべきである。
   ? kAudioDevicePropertyDeviceIsRunning   ? kAudioDevicePropertyDeviceIsRunning
     : **UInt32**     : **UInt32**
行 408: 行 408:
   ? kAudioDevicePropertyUsesVariableBufferFrameSizes   ? kAudioDevicePropertyUsesVariableBufferFrameSizes
     : **UInt32**     : **UInt32**
-    : A UInt32 that, if implemented by a device, indicates that the sizes of the buffers passed to an IOProc will vary by a small amount. The value of this property will indicate the largest buffer that will be passed and kAudioDevicePropertyBufferFrameSize will indicate the smallest buffer that will get passed to the IOProc. The usage of this property is narrowed to only allow for devices whose buffer sizes vary by small amounts greater than kAudioDevicePropertyBufferFrameSize. It is not intended to be a license for devices to be able to send buffers however they please. Rather, it is intended to allow for hardware whose natural rhythms lead to this necessity.+    : 装置によって実装されている場合、IOProcに渡されるバッファサイズが微少に変化する事を示す。本プロパティ値は渡される最大バッファサイズを表し、そして''kAudioDevicePropertyBufferFrameSize''はIOProcに渡される最小バッファを表す。本プロパティの使い方は狭く、バッファサイズが''kAudioDevicePropertyBufferFrameSize''よりも少し増加する事を装置に許可するだけである。必要とした際に装置が自由にバッファを送信する権利を、装置に付与することを意図したものではない。より正確には、ハードウェアの自然なリズムに不可欠なRather, it is intended to allow for hardware whose natural rhythms lead to this necessity. 
 +    A UInt32 that, if implemented by a device, indicates that the sizes of the buffers passed to an IOProc will vary by a small amount. The value of this property will indicate the largest buffer that will be passed and kAudioDevicePropertyBufferFrameSize will indicate the smallest buffer that will get passed to the IOProc. The usage of this property is narrowed to only allow for devices whose buffer sizes vary by small amounts greater than kAudioDevicePropertyBufferFrameSize. It is not intended to be a license for devices to be able to send buffers however they please. Rather, it is intended to allow for hardware whose natural rhythms lead to this necessity.
   ? kAudioDevicePropertyStreams   ? kAudioDevicePropertyStreams
     : **AudioStreamID配列**     : **AudioStreamID配列**
行 440: 行 441:
     : AudioDeviceのタイムスタンプによって計測された現在の実際のサンプリングレート。     : AudioDeviceのタイムスタンプによって計測された現在の実際のサンプリングレート。
  
-==== AudioDevice Properties Implemented via AudioControl objects ====+==== AudioControlオブジェクトを通じて実装されるAudioDeviceプロパティ ====
  
   ? kAudioDevicePropertyJackIsConnected   ? kAudioDevicePropertyJackIsConnected
行 464: 行 465:
     : 0.0が完全に左、1.0が完全に右、0.5が中央の定位。 AudioControlのサブクラスAudioStereoPanControlで実装されている。     : 0.0が完全に左、1.0が完全に右、0.5が中央の定位。 AudioControlのサブクラスAudioStereoPanControlで実装されている。
   ? kAudioDevicePropertyStereoPanChannels   ? kAudioDevicePropertyStereoPanChannels
-    : **UInt32配列**+    : **UInt32[2]**
     : An array of two UInt32s that indicate which elements of the owning object the signal is being panned between. This property is implemented by an AudioControl object that is a subclass of AudioStereoPanControl.     : An array of two UInt32s that indicate which elements of the owning object the signal is being panned between. This property is implemented by an AudioControl object that is a subclass of AudioStereoPanControl.
   ? kAudioDevicePropertyMute   ? kAudioDevicePropertyMute
行 494: 行 495:
   ? kAudioDevicePropertyPlayThru   ? kAudioDevicePropertyPlayThru
     : **UInt32**     : **UInt32**
-    : 0はスルー再生が無効、1は有効を表す。AudioControlのサブクラスAudioMuteControlで実装されている。Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.+    : 0はスルー再生が無効、1は有効を表す。AudioControlのサブクラスAudioMuteControlで実装されている。さらにまた、本プロパティを実装するコントロールは、''kAudioDevicePropertyScopePlayThroughur''を通してのみ利用可能である。
   ? kAudioDevicePropertyPlayThruSolo   ? kAudioDevicePropertyPlayThruSolo
-    : UInt32 where a value of 1 means that just that play through element is audible and the other elements are inaudible. The property is implemented by an AudioControl object that is a subclass of AudioSoloControl. Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.+    : **UInt32** 
 +    :  where a value of 1 means that just that play through element is audible and the other elements are inaudible. The property is implemented by an AudioControl object that is a subclass of AudioSoloControl. Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.
   ? kAudioDevicePropertyPlayThruVolumeScalar   ? kAudioDevicePropertyPlayThruVolumeScalar
-    : Float32 that represents the value of the volume control. The range is between 0.0 and 1.0 (inclusive). This property is implemented by an AudioControl object that is a subclass of AudioVolumeControl.Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.+    : **Float32** 
 +    : 音量制御の値を示す。範囲は0.0以上1.0以下である。本プロパティは''AudioControl''のサブクラス''AudioVolumeControl''で実装されている。さらにまた、本プロパティを実装するコントロールは''kAudioDevicePropertyScopePlayThrough''を通してのみ利用可能である。
   ? kAudioDevicePropertyPlayThruVolumeDecibels   ? kAudioDevicePropertyPlayThruVolumeDecibels
-    : Float32 that represents the value of the volume control in dB. This property is implemented by an AudioControl object that is a subclass of AudioVolumeControl. Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.+    : **Float32** 
 +    : 音量制御の値をデシベルで示す。 本プロパティは''AudioControl''のサブクラス''AudioVolumeControl''で実装されている。さらにまた、本プロパティを実装するコントロールは''kAudioDevicePropertyScopePlayThrough''を通してのみ利用可能である。
   ? kAudioDevicePropertyPlayThruVolumeRangeDecibels   ? kAudioDevicePropertyPlayThruVolumeRangeDecibels
-    : An AudioValueRange that contains the minimum and maximum dB values the control can have. This property is implemented by an AudioControl object that is a subclass of AudioVolumeControl. Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.+    : **AudioValueRange** 
 +    : コントロールが取りうるデシベル値の最小・最大を含む。 本プロパティは''AudioControl''のサブクラス''AudioVolumeControl''で実装されている。さらにまた、本プロパティを実装するコントロールは''kAudioDevicePropertyScopePlayThrough''を通してのみ利用可能である。
   ? kAudioDevicePropertyPlayThruVolumeScalarToDecibels   ? kAudioDevicePropertyPlayThruVolumeScalarToDecibels
     : A Float32 that on input contains a scalar volume value for the and on exit contains the equivalent dB value. This property is implemented by an AudioControl object that is a subclass of AudioVolumeControl. Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.     : A Float32 that on input contains a scalar volume value for the and on exit contains the equivalent dB value. This property is implemented by an AudioControl object that is a subclass of AudioVolumeControl. Further, the control that implements this property is only available through kAudioDevicePropertyScopePlayThrough.
行 533: 行 538:
     : An AudioValueRange that contains the minimum and maximum dB values the control can have. This property is implemented by an AudioControl object that is a subclass of AudioLFEVolumeControl.     : An AudioValueRange that contains the minimum and maximum dB values the control can have. This property is implemented by an AudioControl object that is a subclass of AudioLFEVolumeControl.
   ? kAudioDevicePropertySubVolumeScalarToDecibels   ? kAudioDevicePropertySubVolumeScalarToDecibels
-    : Float32 that on input contains a scalar volume value for the and on exit contains the equivalent dB value. This property is implemented by an AudioControl object that is a subclass of AudioLFEVolumeControl.+    : **Float32** 
 +    : スカラー音量値を入力すると、等価なデシベル値を出力する。本プロパティは''AudioControl''のサブクラス''AudioLFEVolumeControl''で実装される。
   ? kAudioDevicePropertySubVolumeDecibelsToScalar   ? kAudioDevicePropertySubVolumeDecibelsToScalar
-    : Float32 that on input contains a dB volume value for the and on exit contains the equivalent scalar value. This property is implemented by an AudioControl object that is a subclass of AudioLFEVolumeControl.+    : **Float32** 
 +    : デシベル音量値を入力すると、等価なスカラー値を出力する。本プロパティは''AudioControl''のサブクラス''AudioLFEVolumeControl''で実装される。
   ? kAudioDevicePropertySubMute   ? kAudioDevicePropertySubMute
     : **UInt32**     : **UInt32**
行 541: 行 548:
          
          
-==== AudioStream Properties ====+==== AudioStreamプロパティ====
  
   ? kAudioStreamPropertyDirection   ? kAudioStreamPropertyDirection
行 548: 行 555:
   ? kAudioStreamPropertyTerminalType   ? kAudioStreamPropertyTerminalType
     : **UInt32**     : **UInt32**
-    : whose value describes the general kind of functionality attached to the AudioStream. Constants that describe some of the values of this property are defined in+    : ''AudioStream''に付随する機能の一般的な種類を表す。本プロパティ値となり得る幾つかの定数は<IOKit/audio/IOAudioTypes.h>で定義されている。
   ? kAudioStreamPropertyStartingChannel   ? kAudioStreamPropertyStartingChannel
     : **UInt32**     : **UInt32**
-    :  that specifies the first element in the owning device that corresponds to element one of this stream.+    : このストリームの1つのエレメントと一致する、親デバイス内の最初のエレメントを特定する。
   ? kAudioStreamPropertyLatency   ? kAudioStreamPropertyLatency
-    : UInt32 containing the number of frames of latency in the AudioStream. Note that the owning AudioDevice may have additional latency so it should be queried as well. If both the device and the stream say they have latency, then the total latency for the stream is the device latency summed with the stream latency.+    : **UInt32** 
 +    : ''AudioStream''の遅延フレーム数。親''AudioDevice''が追加の遅延を持つ可能性があるため、同様に問い合わせるべきである。デバイスとストリームの両方がレイテンシを返した場合、そのストリームの合計レイテンシはデバイス遅延とストリーム遅延の合算となる。
   ? kAudioStreamPropertyVirtualFormat   ? kAudioStreamPropertyVirtualFormat
     : **AudioStreamBasicDescription**     : **AudioStreamBasicDescription**
行 569: 行 577:
 === Discussion === === Discussion ===
  
-AudioStream is a subclass of AudioObject and has only the single scope, kAudioObjectPropertyScopeGlobal. They have a master element and an element for each channel in the stream numbered upward from 1. Note that AudioStream objects share AudioControl objects with their owning AudioDevice. Consequently, all the standard AudioControl related property selectors implemented by AudioDevices are also implemented by AudioStreams. The same constants are to be used for such properties.+''AudioStream''は''AudioObject''のサブクラスで、ただ1つのスコープ''kAudioObjectPropertyScopeGlobal''を持つ。 
 +それらはマスターエレメントと、チャンネル毎にストリーム内で1から番号付けされるエレメントを持つ。 
 +''AudioDevice''が所有する複数の''AudioStream''オブジェクト間で、''AudioControl''オブジェクトが共有される点に注意されたい。 
 +その結果として、''AudioDevice''によって実装される標準的な''AudioControl''関連のプロパティセレクタの全ては、''AudioStream''によっても実装される。 
 +このようなプロパティには同じ定数が使用される。
  
  • translation/working/翻訳2.1421831308.txt.gz
  • 最終更新: 2015-01-21 18:08
  • by Decomo