Mac Developer Library

Developer

DRCoreTrack.h Reference

Options
Deployment Target:

On This Page
Language:

DRCoreTrack.h Reference

Track object interfaces for Disc Recording.

Included Headers

  • <CoreServices/CoreServices.h>

  • <DiscRecording/DRCoreDevice.h>

  • <DiscRecording/DRCoreObject.h>

  • <AvailabilityMacros.h>

Functions

  • Creates a new track object.

    Declaration

    Swift

    func DRTrackCreate(_ properties: CFDictionary!, _ callback: DRTrackCallbackProc) -> Unmanaged<DRTrack>!

    Objective-C

    DRTrackRef DRTrackCreate ( CFDictionaryRef properties, DRTrackCallbackProc callback );

    Parameters

    properties

    A CFDictionary object containing the track properties. If this parameter is not a valid CFDictionary object the behavior is undefined.

    callback

    A pointer to a DRTrackCallbackProc callback. If this callback is NULL the behavior is undefined.

    Return Value

    A reference to the new DRTrack object.

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

  • Asks the track producer for a block size estimate.

    Declaration

    Swift

    func DRTrackEstimateLength(_ track: DRTrack!) -> UInt64

    Objective-C

    UInt64 DRTrackEstimateLength ( DRTrackRef track );

    Parameters

    track

    The track to query.

    Return Value

    The size of the track in blocks.

    Discussion

    This function calls the track producer to ask it to estimate the block size needed for its data. This call is passed through to the DRTrackCallbackProc track production callback as kDRTrackMessageEstimateLength .

    For some types of tracks, this call may be very expensive. For example, a file system track (DRFilesystemTrack ) may need to iterate through folders on disk to provide an accurate estimate. If a large number of files and folders are involved, this call may take 30 seconds or more. Since your main thread should not block for this long, you may wish to call this function on a separate thread.

    The return value is the size in blocks that is specified in the track's properties dictionary.

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.3 and later.

  • Returns the properties of the track.

    Declaration

    Swift

    func DRTrackGetProperties(_ track: DRTrack!) -> Unmanaged<CFDictionary>!

    Objective-C

    CFDictionaryRef DRTrackGetProperties ( DRTrackRef track );

    Parameters

    track

    The track whose properties will be retrieved. If this parameter is not a valid DRTrack object, the behavior is undefined.

    Return Value

    A CFMutableDictionary object containing the track properties.

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

  • Returns the Core Foundation type identifier of all DRTrack instances.

    Declaration

    Swift

    func DRTrackGetTypeID() -> CFTypeID

    Objective-C

    CFTypeID DRTrackGetTypeID ( void );

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

  • Sets the properties of the track.

    Declaration

    Swift

    func DRTrackSetProperties(_ track: DRTrack!, _ properties: CFDictionary!)

    Objective-C

    void DRTrackSetProperties ( DRTrackRef track, CFDictionaryRef properties );

    Parameters

    track

    The track whose properties will be set. If this parameter is not a valid DRTrack object, the behavior is undefined.

    properties

    A CFDictionary object containing the track properties. If this parameter is not a valid CFDictionary object the behavior is undefined.

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

  • Tests the speed at which data can be produced.

    Declaration

    Swift

    func DRTrackSpeedTest(_ track: DRTrack!, _ howManyMilliseconds: UInt32, _ howManyBytes: UInt32) -> Float

    Objective-C

    float DRTrackSpeedTest ( DRTrackRef track, UInt32 howManyMilliseconds, UInt32 howManyBytes );

    Parameters

    track

    The track to test.

    howManyMilliseconds

    The maximum duration for the test production cycle. The test may not run for the full requested duration if the byte limit is reached first. If this parameter is 0, the result is undefined.

    howManyBytes

    The maximum number of bytes of data the client should produce before completing the test. The test may not produce the requested number of bytes if the time limit is reached first. If this parameter is 0, the result is undefined.

    Return Value

    The maximum throughput obtained during the test cycle.

    Discussion

    Runs a test track-production cycle, calling the produceData callback for the specified number of milliseconds or until the specified number of bytes have been produced, whichever comes first.

    Use this function to verify that the produceData callback can produce data fast enough to satisfy the data throughput requirements of the burn.

    This function will automatically set a value for the kDRMaxBurnSpeedKey key in the track's properties dictionary, with a value equal to the return result.

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

Callbacks

  • Callback defined in the client to produce track data for recording.

    Declaration

    Swift

    typealias DRTrackCallbackProc = CFunctionPointer<((DRTrack!, DRTrackMessage, UnsafeMutablePointer<Void>) -> OSStatus)>

    Objective-C

    typedef OSStatus ( *DRTrackCallbackProc)( DRTrackRef track, DRTrackMessage message, void *ioParam);

    Parameters

    track

    The track with this callback is associated.

    message

    Indicates the type of data requested as one of the constants in the Track Messages enumeration.

    ioParam

    Parameters are message-specific.

    Return Value

    Error code. Your client application should return a value of kDRFunctionNotSupportedErr when a message is received that you don't respond to, and a value of noErr when the message is handled successfully. Any other error will cause the burn to immediately fail with the value you return as the error code.

    Discussion

    If your callback does not support a given function, it should return a value of kDRFunctionNotSupportedErr .

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

Data Types

See the Overview for header-level documentation.

  • Messages sent to the DRTrackCallbackProc callback.

    Declaration

    Swift

    typealias DRTrackMessage = UInt32

    Objective-C

    typedef UInt32 DRTrackMessage;

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

  • Declaration

    Swift

    typealias DRTrackRef = DRTrack

    Objective-C

    typedef struct __DRTrack* DRTrackRef;

    Discussion

    A reference to a DRTrack object.

    Import Statement

    Objective-C

    @import DiscRecording;

    Swift

    import DiscRecording

    Availability

    Available in OS X v10.2 and later.

  • Parmeter block used for data production.

    Declaration

    Objective-C

    struct DRTrackProductionInfo { void *buffer; UInt32 reqCount; UInt32 actCount; UInt32 flags; UInt32 blockSize; UInt64 requestedAddress; };

    Fields

    buffer

    In - The buffer to produce into. This buffer is passed into the track production callback and only the contents should be modified.

    reqCount

    In - The number of bytes requested by the engine.

    actCount

    Out - The number of bytes actually produced (between 0 and reqCount).

    flags

    InOut - Miscellaneous flags. Flags are passed into the track production callback callback from the Disc Recording engine and the callback can set flags to be passed back to the engine.

    blockSize

    In - The block size the engine is expecting. For best results, return multiples of this size.

    requestedAddress

    In - The byte address that the burn engine is requesting from the object (0-based). This increments when you send data, as one would expect.

Constants

See the Overview for header-level documentation.

  • Declaration

    Swift

    let kDRAudioFourChannelKey: CFString! let kDRAudioPreEmphasisKey: CFString! let kDRBlockSizeKey: CFString! let kDRBlockTypeKey: CFString! let kDRBufferZone1DataKey: CFString! let kDRBurnKey: CFString! let kDRDataFormKey: CFString! let kDRDVDCopyrightInfoKey: CFString! let kDRDVDTimestampKey: CFString! let kDRFreeBlocksKey: CFString! let kDRIndexPointsKey: CFString! let kDRMaxBurnSpeedKey: CFString! let kDRNextWritableAddressKey: CFString! let kDRPreGapIsRequiredKey: CFString! let kDRPreGapLengthKey: CFString! let kDRSCMSCopyrightFree: CFString! let kDRSCMSCopyrightProtectedCopy: CFString! let kDRSCMSCopyrightProtectedOriginal: CFString! let kDRSerialCopyManagementStateKey: CFString! let kDRSessionFormatKey: CFString! let kDRSessionNumberKey: CFString! let kDRSubchannelDataFormKey: CFString! let kDRSubchannelDataFormNone: CFString! let kDRSubchannelDataFormPack: CFString! let kDRSubchannelDataFormRaw: CFString! let kDRTrackIsEmptyKey: CFString! let kDRTrackISRCKey: CFString! let kDRTrackLengthKey: CFString! let kDRTrackModeKey: CFString! let kDRTrackNumberKey: CFString! let kDRTrackPacketSizeKey: CFString! let kDRTrackPacketTypeFixed: CFString! let kDRTrackPacketTypeKey: CFString! let kDRTrackPacketTypeVariable: CFString! let kDRTrackStartAddressKey: CFString! let kDRTrackTypeClosed: CFString! let kDRTrackTypeIncomplete: CFString! let kDRTrackTypeInvisible: CFString! let kDRTrackTypeKey: CFString! let kDRTrackTypeReserved: CFString! let kDRVerificationTypeChecksum: CFString! let kDRVerificationTypeKey: CFString! let kDRVerificationTypeNone: CFString! let kDRVerificationTypeProduceAgain: CFString! let kDRVerificationTypeReceiveData: CFString!

    Objective-C

    extern const CFStringRef kDRAudioFourChannelKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRAudioPreEmphasisKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRBlockSizeKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRBlockTypeKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRBufferZone1DataKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRBurnKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRDataFormKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRDVDCopyrightInfoKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRDVDTimestampKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRFreeBlocksKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRIndexPointsKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRMaxBurnSpeedKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRNextWritableAddressKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRPreGapIsRequiredKeyAVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER; extern const CFStringRef kDRPreGapLengthKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRSCMSCopyrightFreeAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRSCMSCopyrightProtectedCopyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRSCMSCopyrightProtectedOriginalAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRSerialCopyManagementStateKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRSessionFormatKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRSessionNumberKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRSubchannelDataFormKeyAVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER; extern const CFStringRef kDRSubchannelDataFormNoneAVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER; extern const CFStringRef kDRSubchannelDataFormPackAVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER; extern const CFStringRef kDRSubchannelDataFormRawAVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER; extern const CFStringRef kDRTrackIsEmptyKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackISRCKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackLengthKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRTrackModeKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRTrackNumberKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackPacketSizeKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackPacketTypeFixedAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackPacketTypeKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackPacketTypeVariableAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackStartAddressKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackTypeClosedAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackTypeIncompleteAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackTypeInvisibleAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackTypeKeyAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRTrackTypeReservedAVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; extern const CFStringRef kDRVerificationTypeChecksumAVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER; extern const CFStringRef kDRVerificationTypeKeyAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRVerificationTypeNoneAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRVerificationTypeProduceAgainAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER; extern const CFStringRef kDRVerificationTypeReceiveDataAVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER;

    Constants

    • kDRAudioFourChannelKey

      kDRAudioFourChannelKey

      Optional key. For CD-DA audio tracks only. This track property key corresponds to a CFBoolean value indicating whether the track data has four channels, as opposed to the two channels of normal stereo. If this key is not present, the engine will use a default value of false and standard two-channel stereo is assumed.

      Four-channel audio is supported in the Red Book standard but never caught on. It is probably being replaced by SACD, so you probably shouldn't attempt to use it.

      On the disc, this key corresponds to bit 3 of the control field in sub-channel Q.

      Available in OS X v10.3 and later.

    • kDRAudioPreEmphasisKey

      kDRAudioPreEmphasisKey

      Optional key. For CD-DA audio tracks only. This track property key corresponds to a CFBoolean value indicating whether the track includes pre-emphasis of 50/15 microseconds. If this key is not present, the engine will use a default value of false. On the disc, this key corresponds to bit 0 of the control field in sub-channel Q.

      Available in OS X v10.3 and later.

    • kDRBlockSizeKey

      kDRBlockSizeKey

      Required key. This key corresponds to a CFNumber object containing the size of each block of the track. Common values are defined in the Block Sizes enumeration.

      Available in OS X v10.2 and later.

    • kDRBlockTypeKey

      kDRBlockTypeKey

      Required key. This key corresponds to a CFNumber object containing the type of each block of the track. Common values are defined in the Block Types enumeration.

      Available in OS X v10.2 and later.

    • kDRBufferZone1DataKey

      kDRBufferZone1DataKey

      Optional key. This track property key corresponds to a CFData object containing the data to write to Buffer Zone 1 on drives which support it, such as the Pioneer DVR-S201. This data will be sent directly to the drive. If this key is not present, no Buffer Zone 1 data will be sent.

      Available in OS X v10.2 and later.

    • kDRBurnKey

      kDRBurnKey

      This key corresponds to the DRBurn object for which the PreBurn message applies.

      Available in OS X v10.2 and later.

    • kDRDataFormKey

      kDRDataFormKey

      Required key. This key corresponds to a CFNumber object containing the data format of each block of the track. Common values are defined in the Data Forms enumeration.

      Available in OS X v10.2 and later.

    • kDRDVDCopyrightInfoKey

      kDRDVDCopyrightInfoKey

      Optional key. This track property key corresponds to a CFData object containing Multi-Media Command (MMC) copyright data. This data will be sent directly to the drive. If this key is not present, no copyright information will be sent.

      Available in OS X v10.2 and later.

    • kDRDVDTimestampKey

      kDRDVDTimestampKey

      Optional key. This track property key corresponds to a CFData object containing Multi-Media Command (MMC) timestamp data. This data will be sent directly to the drive. If this key is not present, no timestamp will be sent.

      Available in OS X v10.2 and later.

    • kDRFreeBlocksKey

      kDRFreeBlocksKey

      This key corresponds to a CFNumber object containing the length, in blocks, which is still available in a writable track.

      Available in OS X v10.3 and later.

    • kDRIndexPointsKey

      kDRIndexPointsKey

      Optional key. For CD tracks only. This track property key corresponds to a CFArray object containing CFNumber objects describing index points within the track. Each index point is specified as a number of blocks, equivalent to frames, relative to the start of the track. There are 75 blocks in one second of CD audio. No more than 98 index points may be specified for a track.

      Not all drives can write index points, and not all consumer CD players report or use them. If this key is present in any track and the drive cannot write index points, the burn will fail with a return value of kDRDeviceCantWriteIndexPointsErr .

      Available in OS X v10.3 and later.

    • kDRMaxBurnSpeedKey

      kDRMaxBurnSpeedKey

      Optional key. This track property key corresponds to a CFNumber object containing the maximum sustained rate at which your application will request data from the track callback, in units of kilobytes per second where 1 kilobyte = 1,000 bytes.

      The value for kDRMaxBurnSpeedKey must be greater than the drive's minimum burn speed. It is usually safe to specify the appropriate flavor of 1x (kDRDeviceBurnSpeedCD1x or kDRDeviceBurnSpeedDVD1x ), but some drives cannot slow all the way down to 1x.

      Given the capabilities of the drive, the bus, and the recordable disc, the burn speed used when writing a layout will generally be the highest data rate possible that is less than or equal to the value of kDRMaxBurnSpeedKey for every track, as well as less than or equal to the value of the kDRBurnRequestedSpeedKey key for the burn object.

      When this key is not present, the requested maximum sustained data rate defaults to a value of infinity. In this case, the Disc Recording engine assumes that your track callback can produce data at any rate requested.

      Available in OS X v10.2 and later.

    • kDRNextWritableAddressKey

      kDRNextWritableAddressKey

      This key corresponds to a CFNumber object containing the Logical Block Address (LBA) of the next writable address in the track. This key is not present in closed tracks.

      Available in OS X v10.3 and later.

    • kDRPreGapIsRequiredKey

      kDRPreGapIsRequiredKey

      Optional key. This track property key corresponds to a CFBoolean object indicating whether the pregap listed for the track is required. If this key is not present, the track will behave as though the key were false.

      If this key's value is set to true and the device does not support the exact pregap length, the burn will fail with a return value of kDRDevicePregapLengthNotAvailableErr.

      If this key's value is set to false and the device does not support the suggested pregap length, the engine will choose an alternate pregap length.

      Available in OS X v10.4 and later.

    • kDRPreGapLengthKey

      kDRPreGapLengthKey

      Optional key. This track property key corresponds to a CFNumber object containing the length in blocks of empty space, or pregap, to be recorded before the track. If this key is not present the Disc Recording engine will assume a 2 second, or 150 block, pregap.

      Available in OS X v10.2 and later.

    • kDRSCMSCopyrightFree

      kDRSCMSCopyrightFree

      One value for the kDRSerialCopyManagementStateKey dictionary key. This value indicates that the track has no copying restrictions. Copies of this track should also be copyright free.

      Available in OS X v10.3 and later.

    • kDRSCMSCopyrightProtectedCopy

      kDRSCMSCopyrightProtectedCopy

      One value for the kDRSerialCopyManagementStateKey dictionary key. This value indicates that the track is a first-generation copy of an original that was subject to copy protection. No further digital copying should be allowed.

      Available in OS X v10.3 and later.

    • kDRSCMSCopyrightProtectedOriginal

      kDRSCMSCopyrightProtectedOriginal

      One value for the kDRSerialCopyManagementStateKey dictionary key. This value indicates that the track is an original subject to copyright protection. Digital copying of this track should be allowed, but copies should be marked with appropriate Serial Copy Management System (SCMS) data.

      Available in OS X v10.3 and later.

    • kDRSerialCopyManagementStateKey

      kDRSerialCopyManagementStateKey

      Optional key. For CD tracks only. This track property key corresponds to a CFString value indicating the Serial Copy Management System (SCMS) state of the track. If this key is not present, no SCMS data is written.

      Not all drives are capable of writing SCMS data. If this key is present in any track and the drive cannot write SCMS, the burn will fail with a return value of kDRDeviceCantWriteSCMSErr .

      Available in OS X v10.3 and later.

    • kDRSessionFormatKey

      kDRSessionFormatKey

      Required key. This key corresponds to a CFNumber object containing the session format of the track. Common values are defined in the Session Mode enumeration.

      Available in OS X v10.2 and later.

    • kDRSessionNumberKey

      kDRSessionNumberKey

      This key corresponds to a CFNumber object containing the physical session number of a track.

      Available in OS X v10.3 and later.

    • kDRSubchannelDataFormKey

      kDRSubchannelDataFormKey

      The property whose value is the data mode of the subchannel data sent to the drive. If this key is not present, the track will default to a value of DRSubchannelDataFormNone and no subchannel information will be requested from the producer.

      Subchannel data is returned from the producer in the same production method that produces normal user data. Normally a producer returns user data in chunks of DRBlockSizeKey size. When subchannel data is also produced, the producer is expected to return user data of DRBlockSizeKey in length with an additonal 96 bytes of subchannel data. Depending on the data form specified in this key, the format of this 96 bytes is either in raw or pack format. When subchannel data is requested from the producer, the DRFlagSubchannelDataRequested flag is set in the flags parameter of producePreGapForTrack:intoBuffer:length:atAddress:blockSize:ioFlags: or produceDataForTrack:intoBuffer:length:atAddress:blockSize:ioFlags: and blockSize is increased by 96 bytes.

      Available in OS X v10.5 and later.

    • kDRSubchannelDataFormNone

      kDRSubchannelDataFormNone

      A value for DRSubchannelDataFormKey indicating that the subchannel data will not be provided by the producer.

      Available in OS X v10.5 and later.

    • kDRSubchannelDataFormPack

      kDRSubchannelDataFormPack

      A value for DRSubchannelDataFormKey indicating that the producer will be asked to provide pack format subchannel data for the track. If this form is selected, the drive will perform P and Q parity calculations on each pack and interleave the packs before writing them to disc. This corresponds to a subchannel data form of 0xC0.

      Available in OS X v10.5 and later.

    • kDRSubchannelDataFormRaw

      kDRSubchannelDataFormRaw

      A value for DRSubchannelDataFormKey indicating that the producer will be asked to provide raw format subchannel data for the track. If this form is selected, the producer must have performed P and Q parity calculations for each pack and done proper interleaving of the subchannel data. The drive will fill in the P-Q subchannel information and write the R-W subchannel data as is to the disc. This corresponds to a subchannel data form of 0x40.

      Available in OS X v10.5 and later.

    • kDRTrackIsEmptyKey

      kDRTrackIsEmptyKey

      This key corresponds to a CFBoolean object and indicates whether the track is empty.

      Available in OS X v10.3 and later.

    • kDRTrackISRCKey

      kDRTrackISRCKey

      Optional key. For CD-DA audio tracks only. This track property key corresponds to a CFData object containing exactly 12 bytes, which will be written to the disc as the International Standard Recording Code (ISRC). If this key is not present, no ISRC data is written.

      The use of this value should conform to the specifications of the IFPI. See http://www.ifpi.org/isrc for details on the ISRC standard.

      Not all drives can write ISRC data. If this key is present in any track and the drive cannot write ISRC data, the burn will fail with a return value of kDRDeviceCantWriteISRCErr .

      Available in OS X v10.3 and later.

    • kDRTrackLengthKey

      kDRTrackLengthKey

      Required Key. This key corresponds to a CFNumber object containing the length of the track data in blocks.

      Available in OS X v10.2 and later.

    • kDRTrackModeKey

      kDRTrackModeKey

      Required key. This key corresponds to a CFNumber object containing the track mode of the track. Common values are defined in the Track Modes enumeration.

      Available in OS X v10.2 and later.

    • kDRTrackNumberKey

      kDRTrackNumberKey

      This key corresponds to a CFNumber object containing the physical track number of a track.

      Available in OS X v10.3 and later.

    • kDRTrackPacketSizeKey

      kDRTrackPacketSizeKey

      This key corresponds to a CFNumber object that contains the number of blocks per packet for the disc. It will only be present if the disc contains fixed packets. This key will contain '16' for DVD media, and typically contains either '16' or '32' for CD media.

      Available in OS X v10.3 and later.

    • kDRTrackPacketTypeFixed

      kDRTrackPacketTypeFixed

      One value for the kDRTrackPacketTypeKey dictionary key. This value indicates the disc is writen with fixed sized packets. When this value is present the kDRPacketSizeKey dictionary key will also be present.

      Available in OS X v10.3 and later.

    • kDRTrackPacketTypeKey

      kDRTrackPacketTypeKey

      This key corresponds to a CFString value indicating the kind of packets being written.

      Available in OS X v10.3 and later.

    • kDRTrackPacketTypeVariable

      kDRTrackPacketTypeVariable

      One value for the kDRTrackPacketTypeKey dictionary key. This value indicates the disc is written with sequential, variable-sized packets. When this key is present, the kDRPacketSizeKey dictionary key will not be.

      Available in OS X v10.3 and later.

    • kDRTrackStartAddressKey

      kDRTrackStartAddressKey

      This key corresponds to a CFNumber object containing the Logical Block Address (LBA) of the start address for the track.

      Available in OS X v10.3 and later.

    • kDRTrackTypeClosed

      kDRTrackTypeClosed

      One value for the kDRTrackTypeKey dictionary key. This value indicates the track has been written and is closed.

      Available in OS X v10.3 and later.

    • kDRTrackTypeIncomplete

      kDRTrackTypeIncomplete

      One value for the kDRTrackTypeKey dictionary key. This value indicates the track is not invisible or reserved and is available for writing.

      Available in OS X v10.3 and later.

    • kDRTrackTypeInvisible

      kDRTrackTypeInvisible

      One value for the kDRTrackTypeKey dictionary key. This value indicates the track is invisible and available for writing. If it is packet written and not closed, the kDRTrackPacketType key will be present along with the kDRTrackPacketSize keys.

      Available in OS X v10.3 and later.

    • kDRTrackTypeKey

      kDRTrackTypeKey

      This key corresponds to a CFString object indicating the type of track. Possible values are kDRTrackTypeInvisible , kDRTrackTypeIncomplete , kDRTrackTypeReserved , or kDRTrackTypeClosed .

      Available in OS X v10.3 and later.

    • kDRTrackTypeReserved

      kDRTrackTypeReserved

      One value for the kDRTrackTypeKey dictionary key. This value indicates the track is reserved for writing.

      Available in OS X v10.3 and later.

    • kDRVerificationTypeChecksum

      kDRVerificationTypeChecksum

      One value for the kDRVerificationTypeKey dictionary key. This value indicates the engine will verify the track data with an internally calculated checksum.

      Available in OS X v10.4 and later.

    • kDRVerificationTypeKey

      kDRVerificationTypeKey

      Optional key. This track property key corresponds to a CFString object indicating the kind of verification that should be performed. If the key is not present, no verification will take place.

      Available in OS X v10.2 and later.

    • kDRVerificationTypeNone

      kDRVerificationTypeNone

      One value for the kDRVerificationTypeKey dictionary key. This value indicates the engine will not do any sort of verification on the track data.

      Available in OS X v10.2 and later.

    • kDRVerificationTypeProduceAgain

      kDRVerificationTypeProduceAgain

      One value for the kDRVerificationTypeKey dictionary key. This value indicates the engine will start another production cycle and the client simply produces data again from the start.

      Note that this verification mode currently only works with data CDs and DVDs.

      Available in OS X v10.2 and later.

    • kDRVerificationTypeReceiveData

      kDRVerificationTypeReceiveData

      One value for the kDRVerificationTypeKey dictionary key. This value indicates the engine will read data from the disc and send it to the client through a series of calls to the callback.

      Available in OS X v10.2 and later.

  • Declaration

    Swift

    var kDRBlockSizeAudio: Int { get } var kDRBlockSizeMode1Data: Int { get } var kDRBlockSizeMode2Data: Int { get } var kDRBlockSizeMode2Form1Data: Int { get } var kDRBlockSizeMode2Form2Data: Int { get } var kDRBlockSizeDVDData: Int { get }

    Objective-C

    enum { kDRBlockSizeAudio = 2352, kDRBlockSizeMode1Data = 2048, kDRBlockSizeMode2Data = 2332, kDRBlockSizeMode2Form1Data = 2048, kDRBlockSizeMode2Form2Data = 2324, kDRBlockSizeDVDData = 2048 };

    Constants

    • kDRBlockSizeAudio

      kDRBlockSizeAudio

      Audio data.

      Available in OS X v10.2 and later.

    • kDRBlockSizeMode1Data

      kDRBlockSizeMode1Data

      Mode 1 data.

      Available in OS X v10.2 and later.

    • kDRBlockSizeMode2Data

      kDRBlockSizeMode2Data

      Mode 2 data. Photo CD and CD-i use this.

      Available in OS X v10.3 and later.

    • kDRBlockSizeMode2Form1Data

      kDRBlockSizeMode2Form1Data

      Mode 2 Form 1 data.

      Available in OS X v10.4 and later.

    • kDRBlockSizeMode2Form2Data

      kDRBlockSizeMode2Form2Data

      Mode 2 Form 2 data.

      Available in OS X v10.4 and later.

    • kDRBlockSizeDVDData

      kDRBlockSizeDVDData

      DVD data.

      Available in OS X v10.2 and later.

    Discussion

    Common block sizes for different types of track data.

  • Declaration

    Swift

    var kDRBlockTypeAudio: Int { get } var kDRBlockTypeMode1Data: Int { get } var kDRBlockTypeMode2Data: Int { get } var kDRBlockTypeMode2Form1Data: Int { get } var kDRBlockTypeMode2Form2Data: Int { get } var kDRBlockTypeDVDData: Int { get }

    Objective-C

    enum { kDRBlockTypeAudio = 0, kDRBlockTypeMode1Data = 8, kDRBlockTypeMode2Data = 13, kDRBlockTypeMode2Form1Data = 10, kDRBlockTypeMode2Form2Data = 12, kDRBlockTypeDVDData = 8 };

    Constants

    • kDRBlockTypeAudio

      kDRBlockTypeAudio

      Audio data.

      Available in OS X v10.2 and later.

    • kDRBlockTypeMode1Data

      kDRBlockTypeMode1Data

      Mode 1 data.

      Available in OS X v10.2 and later.

    • kDRBlockTypeMode2Data

      kDRBlockTypeMode2Data

      Mode 2 data. Photo CD and CD-i use this.

      Available in OS X v10.2 and later.

    • kDRBlockTypeMode2Form1Data

      kDRBlockTypeMode2Form1Data

      Mode 2 Form 1 data.

      Available in OS X v10.4 and later.

    • kDRBlockTypeMode2Form2Data

      kDRBlockTypeMode2Form2Data

      Mode 2 Form 2 data.

      Available in OS X v10.4 and later.

    • kDRBlockTypeDVDData

      kDRBlockTypeDVDData

      DVD data.

      Available in OS X v10.2 and later.

    Discussion

    Common block type values for types of track data.

  • Declaration

    Swift

    var kDRDataFormAudio: Int { get } var kDRDataFormMode1Data: Int { get } var kDRDataFormMode2Data: Int { get } var kDRDataFormMode2Form1Data: Int { get } var kDRDataFormMode2Form2Data: Int { get } var kDRDataFormDVDData: Int { get }

    Objective-C

    enum { kDRDataFormAudio = 0, kDRDataFormMode1Data = 16, kDRDataFormMode2Data = 32, kDRDataFormMode2Form1Data = 32, kDRDataFormMode2Form2Data = 32, kDRDataFormDVDData = 16 };

    Constants

    • kDRDataFormAudio

      kDRDataFormAudio

      Audio data.

      Available in OS X v10.2 and later.

    • kDRDataFormMode1Data

      kDRDataFormMode1Data

      Mode 1 data.

      Available in OS X v10.2 and later.

    • kDRDataFormMode2Data

      kDRDataFormMode2Data

      Mode 2 data. Photo CD and CD-i use this.

      Available in OS X v10.2 and later.

    • kDRDataFormMode2Form1Data

      kDRDataFormMode2Form1Data

      Mode 2 Form 1 data.

      Available in OS X v10.4 and later.

    • kDRDataFormMode2Form2Data

      kDRDataFormMode2Form2Data

      Mode 2 Form 2 data.

      Available in OS X v10.4 and later.

    • kDRDataFormDVDData

      kDRDataFormDVDData

      DVD data.

      Available in OS X v10.2 and later.

    Discussion

    Common data form values for types of track data.

  • Declaration

    Swift

    var kDRSessionFormatAudio: Int { get } var kDRSessionFormatMode1Data: Int { get } var kDRSessionFormatCDI: Int { get } var kDRSessionFormatCDXA: Int { get } var kDRSessionFormatDVDData: Int { get }

    Objective-C

    enum { kDRSessionFormatAudio = 0, kDRSessionFormatMode1Data = 0, kDRSessionFormatCDI = 0x10, kDRSessionFormatCDXA = 0x20, kDRSessionFormatDVDData = 0 };

    Constants

    • kDRSessionFormatAudio

      kDRSessionFormatAudio

      Audio data.

      Available in OS X v10.2 and later.

    • kDRSessionFormatMode1Data

      kDRSessionFormatMode1Data

      Mode 1 data.

      Available in OS X v10.2 and later.

    • kDRSessionFormatCDI

      kDRSessionFormatCDI

      CD-I disc.

      Available in OS X v10.2 and later.

    • kDRSessionFormatCDXA

      kDRSessionFormatCDXA

      CD-ROM XA disc.

      Available in OS X v10.2 and later.

    • kDRSessionFormatDVDData

      kDRSessionFormatDVDData

      DVD data.

      Available in OS X v10.2 and later.

    Discussion

    Common session format values for types of track data.

  • Declaration

    Swift

    var kDRFlagNoMoreData: Int { get } var kDRFlagSubchannelDataRequested: Int { get }

    Objective-C

    enum { #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 kDRFlagSubchannelDataRequested = ( 1 << 1), #endif kDRFlagNoMoreData = ( 1 << 0) };

    Constants

    • kDRFlagNoMoreData

      kDRFlagNoMoreData

      Indicates the end of variable length data.

      Available in OS X v10.2 and later.

    • kDRFlagSubchannelDataRequested

      kDRFlagSubchannelDataRequested

      Indicates that the blockSize passed in includes room for subchannel data. Data producers should check this flag and perform subchannel data production in addition to user data production. Each block requested from the producer in this case will be formatted as

      [user data (as specified in track properties)][subchannel data(96 bytes)].

      For example an audio producer callback should produce 2352 bytes of audio data into bytes 0-2351 of the block and an additional 96 bytes of subchannel data into bytes 2352-2447.

      Available in OS X v10.5 and later.

    Discussion

    These flags are options in the DRTrackProductionInfo structure.

  • Declaration

    Swift

    var kDRTrackMessagePreBurn: Int { get } var kDRTrackMessageProduceData: Int { get } var kDRTrackMessageVerificationStarting: Int { get } var kDRTrackMessageVerifyData: Int { get } var kDRTrackMessageVerificationDone: Int { get } var kDRTrackMessagePostBurn: Int { get } var kDRTrackMessageEstimateLength: Int { get } var kDRTrackMessageProducePreGap: Int { get } var kDRTrackMessageVerifyPreGap: Int { get }

    Objective-C

    enum { kDRTrackMessagePreBurn = 'pre ', kDRTrackMessageProduceData = 'prod', kDRTrackMessageVerificationStarting = 'vstr', kDRTrackMessageVerifyData = 'vrfy', kDRTrackMessageVerificationDone = 'vdon', kDRTrackMessagePostBurn = 'post', kDRTrackMessageEstimateLength = 'esti', /* added in 10.3 */ kDRTrackMessageProducePreGap = 'prpr', /* added in 10.3 */ kDRTrackMessageVerifyPreGap = 'vrpr' /* added in 10.4 */ };

    Constants

    • kDRTrackMessagePreBurn

      kDRTrackMessagePreBurn

      Message sent to the track production callback indicating a burn is about to begin. Clients should open any files needed to produce data and get ready to start sending data.

      The ioParam parameter contains a CFDictionary object with information about the burn. It currently holds kDRBurnKey and kDRDeviceMediaInfoKey dictionary keys, but may be extended to hold other properties in the future.

      Available in OS X v10.2 and later.

    • kDRTrackMessageProduceData

      kDRTrackMessageProduceData

      Message sent to the track production callback requesting that the client produce the next chunk of data for the track.

      The ioParam parameter is a pointer to a DRTrackProductionInfo structure.

      Available in OS X v10.2 and later.

    • kDRTrackMessageVerificationStarting

      kDRTrackMessageVerificationStarting

      Message sent to the callback proc indicating that verification is about to begin.

      ioParam is not used and is NULL.

      Available in OS X v10.2 and later.

    • kDRTrackMessageVerifyData

      kDRTrackMessageVerifyData

      Message sent to the track production callback when the client has chosen the kDRVerificationTypeReceiveData option.

      The ioParam parameter is a pointer to a DRTrackProductionInfo structure describing the data passed to the callback.

      Available in OS X v10.2 and later.

    • kDRTrackMessageVerificationDone

      kDRTrackMessageVerificationDone

      Message sent to the track production callback when verification is complete.

      The ioParam parameter is not used and is NULL.

      Available in OS X v10.2 and later.

    • kDRTrackMessagePostBurn

      kDRTrackMessagePostBurn

      Message sent to the track production callback indicating a burn has completed.

      The ioParam parameter is not used and is NULL.

      Available in OS X v10.2 and later.

    • kDRTrackMessageEstimateLength

      kDRTrackMessageEstimateLength

      Message sent to the track production callback asking it to estimate the length of the track. This message is sent outside of a burn cycle, when the DRTrackEstimateLength function is called.

      The ioParam parameter is a pointer to a UInt64 value, which the callback fills in with an estimated number of blocks for the track. The estimate should be reasonably accurate and no smaller than the actual size that will be needed.

      Available in OS X v10.3 and later.

    • kDRTrackMessageProducePreGap

      kDRTrackMessageProducePreGap

      Message sent to the track production callback requesting that the client produce the next chunk of the pregap.

      The ioParam parameter is a pointer to a DRTrackProductionInfo structure.

      Available in OS X v10.3 and later.

    • kDRTrackMessageVerifyPreGap

      kDRTrackMessageVerifyPreGap

      Message sent to the track production callback when the client has chosen the kDRVerificationTypeReceiveData option. The data produced by the client for the kDRTrackMessageProducePreGap should be verified.

      The ioParam parameter is a pointer to a DRTrackProductionInfo structure describing the data passed to the callback.

      Available in OS X v10.4 and later.

    Discussion

    Messages sent to the DRTrackCallbackProc callback during a burn.

  • Declaration

    Swift

    var kDRTrackModeAudio: Int { get } var kDRTrackMode1Data: Int { get } var kDRTrackMode2Data: Int { get } var kDRTrackMode2Form1Data: Int { get } var kDRTrackMode2Form2Data: Int { get } var kDRTrackModeDVDData: Int { get }

    Objective-C

    enum { kDRTrackModeAudio = 0, kDRTrackMode1Data = 4, kDRTrackMode2Data = 4, kDRTrackMode2Form1Data = 4, kDRTrackMode2Form2Data = 4, kDRTrackModeDVDData = 5 };

    Constants

    • kDRTrackModeAudio

      kDRTrackModeAudio

      Audio data.

      Available in OS X v10.2 and later.

    • kDRTrackMode1Data

      kDRTrackMode1Data

      Mode 1 data.

      Available in OS X v10.2 and later.

    • kDRTrackMode2Data

      kDRTrackMode2Data

      Mode 2 data. Photo CD and CD-i use this.

      Available in OS X v10.2 and later.

    • kDRTrackMode2Form1Data

      kDRTrackMode2Form1Data

      Mode 2 Form 1 data.

      Available in OS X v10.4 and later.

    • kDRTrackMode2Form2Data

      kDRTrackMode2Form2Data

      Mode 2 Form 2 data.

      Available in OS X v10.4 and later.

    • kDRTrackModeDVDData

      kDRTrackModeDVDData

      DVD data.

      Available in OS X v10.2 and later.

    Discussion

    Common track mode values for types of track data.