トップ回答者
IMAPI2でCDのセッション数を取得する方法

質問
回答
-
以下の流れでどうでしょうか。
1.CoCreateInstanceでIDiscMaster2 Instanceを作成する
2.IDiscMaster2::get_Itemで該当するDisc DeviceのUnique IDを取得する
3.CoCreateInstanceでIDiscRecorder2 Instanceを作成する
4.IDiscRecorder2::InitializeDiscRecorderにUnique IDを渡してDisc Deviceを関連付ける
5.IDiscRecorder2::QueryInterfaceでIDiscRecorder2Ex Interfaceを取得する
6.IDiscRecorder2Ex::GetDiscInformationでREAD DISC INFORMATIONを取得する
7.READ DISC INFORMATIONの以下の情報からSession数を求める
・Number of Sessions(LSB)
・Number of Sessions(MSB)
8.READ DISC INFORMATIONの以下の情報からSession数を調整する
・Status of Last Session
・Disc Status
この処理は実際に以下のケースを検証してみて、必要かどうか判断してください。
・Empty Session(Empty Disc/Blank Media)
・Incomplete Session(Incomplete Disc)
・Complete Session(Complete Disc)
例えば、Blank Mediaの場合、7.のSession数が1になるかもしれません。
この場合、書き込み済みのSessionは存在しないため、
Session数を0として扱うなど、調整が必要になりますね。
READ DISC INFORMATIONの詳細は、
T10のMMC(Multi Media Commands)の仕様書を確認してください。
[T10]
※Documentをdownloadするには、情報の登録が必要です。
CDであれば、IMAPI version 1.0の方が楽ですね。
- 回答としてマーク 山本春海 2010年10月8日 5:17
すべての返信
-
以下の流れでどうでしょうか。
1.CoCreateInstanceでIDiscMaster2 Instanceを作成する
2.IDiscMaster2::get_Itemで該当するDisc DeviceのUnique IDを取得する
3.CoCreateInstanceでIDiscRecorder2 Instanceを作成する
4.IDiscRecorder2::InitializeDiscRecorderにUnique IDを渡してDisc Deviceを関連付ける
5.IDiscRecorder2::QueryInterfaceでIDiscRecorder2Ex Interfaceを取得する
6.IDiscRecorder2Ex::GetDiscInformationでREAD DISC INFORMATIONを取得する
7.READ DISC INFORMATIONの以下の情報からSession数を求める
・Number of Sessions(LSB)
・Number of Sessions(MSB)
8.READ DISC INFORMATIONの以下の情報からSession数を調整する
・Status of Last Session
・Disc Status
この処理は実際に以下のケースを検証してみて、必要かどうか判断してください。
・Empty Session(Empty Disc/Blank Media)
・Incomplete Session(Incomplete Disc)
・Complete Session(Complete Disc)
例えば、Blank Mediaの場合、7.のSession数が1になるかもしれません。
この場合、書き込み済みのSessionは存在しないため、
Session数を0として扱うなど、調整が必要になりますね。
READ DISC INFORMATIONの詳細は、
T10のMMC(Multi Media Commands)の仕様書を確認してください。
[T10]
※Documentをdownloadするには、情報の登録が必要です。
CDであれば、IMAPI version 1.0の方が楽ですね。
- 回答としてマーク 山本春海 2010年10月8日 5:17