Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Click here to return to the 'DRDeviceSupportLevel' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Authored by: tut on Dec 04, '03 12:37:38PM

I've found that by adding a DRDeviceSupportLevel key to the DRDeviceProfile dictionary in my device profile, I was able to make my device profile stop working. That tells me that the framework is looking at that field, and if we ever figure out the right data type and value for that key, we can get a higher support level, and hopefully enable burning from Finder and iTunes. I looked up DRDeviceSupportLevel in the developer documentation and found that there are 5 levels: DRDeviceSupportLevelNone, DRDeviceSupportLevelUnsupported, DRDeviceSupportLevelVendorSupported,
DRDeviceSupportLevelAppleSupported and DRDeviceSupportLevelAppleShipping. The profiles created with the instructions provided in this thread get DRDeviceSupportLevelUnsupported. I tried setting the DRDeviceSupportLevel key to a string type and setting the string as any of the 3 supported levels but that didn't work. I just thought I would throw this observation out here with the hope that you really smart folks could figure out what to put in the DRDeviceSupportLevel key to get a higher support level.

As a side note, the developer documentation states that the support level DRDeviceSupportLevelVendorSupported is new in Panther. Hopefully that implies that Apple now has a procedure in place for device vendors to test and create profiles for their devices on their own. If that's true, you may be able to get your device supported by bugging your device vendor to find out about the process from Apple and get it done. I'm not optimistic about internal drive vendors doing this, though, since MacOS X users represent such a tiny percentage of their sales.

[ Reply to This | # ]
Authored by: las_vegas on Dec 08, '03 01:33:13AM
I have been very successful installing the EMPREX DVD Dual 4X +/-R +/-RW (I got it for $89 at Fry's!). This drive is the same thing as the BTC DRW 1004IM OEM drive. So far, it works with Toast 6, iTunes, iDVD, iPhoto and Disk Utility (Not Finder).

Prior to installing the profile, 'drutil info' reports the following:

 Vendor   Product           Rev
 DVDRW    IDE1004           0043

   Interconnect: ATAPI
   SupportLevel: None
          Cache: 2048k

The profile file for this drive follows:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "">
<plist version="1.0">
			<string>DVD Dual 4X</string>
To get around Apple's block on 'Unsupported' drives, I used the modified version of DiscRecordingEngine available at Bidouille's web site.

After installing the profile file, 'drutil info' presents the following:

 Vendor   Product           Rev
 DVDRW    IDE1004           0043

   Interconnect: ATAPI
   SupportLevel: Unsupported
          Cache: 2048k
       CD-Write: -R, -RW, BUFE, CDText, Test, IndexPts, ISRC
      DVD-Write: -R, -RW, +R, +RW, BUFE, Test
     Strategies: CD-TAO, CD-SAO, CD-Raw, DVD-DAO

[ Reply to This | # ]
Authored by: las_vegas on Dec 11, '03 02:01:44AM
DRDeviceSupportLevel is not a supported variable in the DR Profile. I did extensive research of the code to determine what exactly could be defined in the profile. Bellow is the list I came up with.

There are some interesting options in there! For instance, 'DRDeviceAppleDVDAuthoringDevice' might be interesting... :) Note that I set ~ where I know the default.

Any illegal item or illegal value will disable profile.

DR Profile Layout:

Root (Array)
	DRDevicePersonalities (Array/Dictionary)

		DRDeviceAlternateVendorNames (Array/String)
		DRDeviceProductName (String) Name		*Required*
		DRDeviceVendorName (String) Vendor		*Required*
		DRDeviceFirmwareRevision (String)

	DRDeviceProfile (Dictionary)

		DRDeviceActualVendorName (String)
		DRDeviceAppleDVDAuthoringDevice (Boolean) Yes/No
		DRDeviceBlankProgressMethod (String) none/~progress/information
		DRDeviceBlankProgressBackwardsForCD (Boolean) Yes/~No
		DRDeviceBlankProgressBackwardsForDVD (Boolean) Yes/~No
		DRDeviceDescription (String)
		DRDeviceMaxReadSize (Number)
		DRDeviceMaxReadSpeed (Number)
		DRDeviceMaxWriteSize (Number)
		DRDeviceMaxWriteSpeed (Number)
		DRDeviceNeedsEjectAfterBurnForCD (Boolean) Yes/~No
		DRDeviceNeedsEjectAfterBurnForDVD (Boolean) Yes/~No
		DRDeviceNeedsEjectAfterEraseForCD (Boolean) Yes/~No
		DRDeviceNeedsEjectAfterEraseForDVD (Boolean) Yes/~No
		DRDeviceNeedsZeroLengthWrite (Boolean) Yes/~No
		DRDeviceOverrideCanEraseCDComplete (Boolean) No/~Yes
		DRDeviceOverrideCanEraseCDQuick (Boolean) No/~Yes
		DRDeviceOverrideCanEraseDVDComplete (Boolean) No/~Yes
		DRDeviceOverrideCanEraseDVDQuick (Boolean) No/~Yes
		DRDeviceOverrideCanTestWriteCD (Boolean) No/Yes
		DRDeviceOverrideCanTestWriteDVD (Boolean) No/Yes
		DRDeviceOverrideCanUnderrunProtectCD (Boolean) No/Yes
		DRDeviceOverrideCanUnderrunProtectDVD (Boolean) No/Yes
		DRDeviceOverrideCanWriteCDR (Boolean) No/Yes
		DRDeviceOverrideCanWriteCDRaw (Boolean) No/Yes
		DRDeviceOverrideCanWriteCDRW (Boolean) No/Yes
		DRDeviceOverrideCanWriteCDSAO (Boolean) No/Yes
		DRDeviceOverrideCanWriteCDTAO (Boolean) No/Yes
		DRDeviceOverrideCanWriteCDText (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDDAO (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDPlusR (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDPlusRW (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDR (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDRW (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDRAM (Boolean) No/Yes
		DRDeviceOverrideCanWriteDVDRW (Boolean) No/Yes
		DRDeviceOverrideCanWriteIndexPoints (Boolean) No/Yes
		DRDeviceOverrideCanWriteISRC (Boolean) No/Yes
		DRDeviceOverrideCanWriteSCMS (Boolean) No/Yes
		DRDeviceOverrideLoadingMechanismCanEject (Boolean) No/~Yes
		DRDeviceOverrideLoadingMechanismCanInject (Boolean) No/~Yes
		DRDeviceOverrideLoadingMechanismCanOpen(Boolean) No/~Yes
		DRDeviceSynchronizeCacheCanUseImmediate (Boolean) No/Yes
		DRDeviceValidBurnSpeedsForCD (String)  Integer Array*
		DRDeviceValidBurnSpeedsForDVD (String)  Integer Array*
		DRDeviceValidCDSAOPregaps (String) Integer Array*
		DRDeviceValidCDTAOPregaps (String) Integer Array*
		DRDeviceValidOpCodes (String) Integer Array*

	DRDeviceProfileVersion (Number) 1

*Integer Array:
	comma separated array of one or more x where:
		x = integer
		[..x] = all integers prior inclusive
		[x..x] = all integers between inclusive
		[x..] = all integers after inclusive
		123			Only 123
		4, 8, 16		Only 4, 8 and 16
		[4..]			From 4 on...
		[24..32]		Only from 24 to 32
		[..32], [37..]		All except 33 to 36
		[..10], [24..32], [34..]	All except 11 to 23 and 33

Hope this helps someone!

[ Reply to This | # ]

Authored by: dasmith59 on Dec 27, '03 09:02:52AM

I believe all of this works and I would love to be able to use my Plextor PX-708UF drive with my Ti-G4 powerbook. I am one of the "Mom and Pop" types that needs more info/help on implementing these hints. I am a user but not a programmer. Any help would be appreciated. Keep up the good work.

[ Reply to This | # ]