himdmusictransferformac
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
himdmusictransferformac [2008/12/14 16:40] – 89.247.200.106 | himdmusictransferformac [2009/03/27 19:57] – wikiadmin | ||
---|---|---|---|
Line 8: | Line 8: | ||
[[http:// | [[http:// | ||
+ | |||
+ | |||
+ | This software could help developing a Linux-software by analyzing the code of the transfer-program which is only about 1,5 Mbytes in binary. It appears that only the binary "HiMD Music Transfer" | ||
+ | |||
+ | The software is a PPC-binary and contains much more functionality in its code than the GUI provides. For example, the code contains functions to format a HiMD or to encode ATRAC3-files, | ||
+ | |||
+ | The code does not use the system supplied USB mass storage driver to access the HiMD device, but uses an internal implementation of the FAT file system. Interestingly, | ||
+ | |||
+ | Here a list of the C++-classes of the HiMD-code: | ||
+ | |||
+ | * CHiMDUtilityBase: | ||
+ | * CHiMDMedium: | ||
+ | * CHiMDIo: Subclass of CSonyScsiIO, | ||
+ | * CHiMDFindFile: | ||
+ | * CHiMDFileUtil: | ||
+ | * CHiMDFileSystem: | ||
+ | * CHiMDFile: Represents an open file on the FAT system | ||
+ | * CHiMDDeviceManager | ||
+ | * CHiMDDevice: | ||
+ | |||
+ | |||
+ | The goal here is to fully understand the C++-code which contains the HiMD-functionality and reimplement the code in C/C++ again. That code would reside inside a library called " | ||
+ | |||
+ | ===== Operation ===== | ||
+ | |||
+ | The following will try to explain in detail how the software works (incomplete). | ||
+ | |||
+ | ==== Download of an MP3 to a MiniDisc ==== | ||
+ | |||
+ | - Unmount the MiniDisc within MacOSX (the Disk-icon of the MiniDisc vanishes from desktop) | ||
+ | - Read disk-id and DES-encryption key from disk to generate key for block-encryption | ||
+ | - Fetch a 16kByte block of the source MP3 and encrypt it with some 3DES-like encryption, write into a 32kByte Buffer | ||
+ | - Fetch another 16kByte block, encrypt, write to the buffer and flush it | ||
+ | - Write the buffer to disk using special SCSI write-commands | ||
+ | - Repeat previous 3 commands until MP3 is written to disk | ||
+ | - Decode idv3-Tag from MP3 and create track-info and write to disk | ||
+ | - Once the application is closed, mount the disk in MacOS again (Icon reappars on desktop) | ||
+ | |||
+ | ===== Links ===== | ||
+ | |||
+ | [[http:// | ||
himdmusictransferformac.txt · Last modified: 2009/06/29 14:38 by wikiadmin