| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- #pragma once
 
- #include <bfc/platform/types.h>
 
- #include "iPodDB.h"
 
- /* iPod shuffle Shadow Database code */
 
- // iTunesSD (iPod Shuffle) Database Classes
 
- class iTunesSD_Song;
 
- class iTunesSD2_Song;
 
- class iTunesSD1 
 
- {
 
- public:
 
- 	iTunesSD1();
 
- 	~iTunesSD1();
 
- 	long write(const iPod_mhlt::mhit_map_t *mhit, unsigned char * data, const unsigned long datasize);
 
- };
 
- class iTunesSD2
 
- {
 
- public:
 
- 	long write(const iPod_mhlt *mhit, const iPod_mhlp *playlists, unsigned char * data, const unsigned long datasize);
 
- };
 
- #define SDSONG_FILENAME_LEN		260
 
- class iTunesSD_Song
 
- {
 
- public:
 
- 	iTunesSD_Song(const iPod_mhit *mhit);
 
- 	enum FileType
 
- 	{
 
- 		MP3		= 0x01,
 
- 		AAC		= 0x02,
 
- 		WAV		= 0x04
 
- 	};
 
- 	enum PlayFlags
 
- 	{
 
- 		UNKNOWN			= 0x000001,		// Might do something special, but nothing has been observed so far
 
- 		BOOKMARKABLE	= 0x000100,		// Any song that has flag is bookmarked
 
- 		SHUFFLE			= 0x010000		// Only songs that have this flag are available in shuffle playback mode
 
- 	};
 
- 	
 
- 	long write(unsigned char * data, const unsigned long datasize);
 
- 	void SetFilename(const wchar_t *filename);
 
- 	void SetStartTime(const double milliseconds)		{ starttime = (unsigned int)(milliseconds / 256.0); }
 
- 	void SetStopTime(const double milliseconds)			{ stoptime  = (unsigned int)(milliseconds / 256.0); }
 
- 	void SetVolume(const int percent);
 
- 	// These are also only 3 byte values
 
- 	uint32_t size_total;
 
- 	uint32_t starttime;
 
- 	uint32_t stoptime;
 
- 	uint32_t volume;		// -100% = 0x0, 0% = 0x64 (100), 100% = 0xc8 (200)
 
- 	uint32_t filetype;		// 0x01 = MP3, 0x02 = AAC, 0x04 = WAV
 
- 	wchar_t filename[SDSONG_FILENAME_LEN + 1];		// Equal to Windows' MAX_PATH, plus the trailing NULL (261 wide chars = 522 bytes)
 
- 	unsigned int playflags;
 
- };
 
- class iTunesSD2_Song
 
- {
 
- public:
 
- 	static long write(const iPod_mhit *mhit, unsigned char * data, const unsigned long datasize);
 
- 	static uint32_t header_size;
 
- };
 
- class iTunesSD2_Playlist
 
- {
 
- public:
 
- 	static long write(const iPod_mhyp *master_playlist, const iPod_mhyp *playlist, unsigned char * data, const unsigned long datasize);
 
- };
 
 
  |