Data burning:
- Detect proper drive (IDiscMaster2 => IDiscRecorder2)
- Create image IFileSystemImage & fill it:
- Import old multisessions (if any on media) IDiscFormat2Data::get_MultisessionInterfaces => IFileSystemImage::put_MultisessionInterfaces
- Import old image (if media is not blank): IFileSystemImage::ImportFileSystem
- Set up target filesystems & restrictions
- Fill IFileSystemImage with data (dirs, files & streams), delete unnecessary imported data
- Set up appropriate properties for each file/dir/stream/image itself
- Configure burner IDiscFormat2Data & write your image
- Set up the drive IDiscFormat2Data::put_Recorder
- Set up required properties (ForceMediaToBeClosed/write speed/buffer underrun/force overwrite, etc)
- Prepare & write the stream: IFileSystemImage::CreateResultImage => IFileSystemImageResolt::get_ImageStream => IDiscFormat2Data::Write
Audio burning (TrackAtOnce):
- Detect proper drive (IDiscMaster2 => IDiscRecorder2)
- Create IDiscFormat2TrackAtOnce & Burn tracks (there is no image):
- Lock the drive IDiscFormat2TrackAtOnce::PrepareMedia
- Burn tracks one by one IDiscFormat2TrackAtOnce::AddAudioTrack
- Release the drive IDiscFormat2TrackAtOnce::ReleaseMedia
Audio burning (DiscAtOnce)
- Detect proper drive (IDiscMaster2 => IDiscRecorder2)
- Create Image IRawCDImageCreator
- Configure the image
- Add tracks IRawCDImageCreator::AddTrack
- Configure burner IDiscFormat2RawCD & burn your image
- Set up the drive IDiscFormat2RawCD::put_Recorder
- Set up required properties
- Prepare & write stream: IDiscFormat2RawCD::WriteMedia