mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-10 11:59:58 -05:00
Initial community commit
This commit is contained in:
78
Src/Plugins/Portable/pmp_ipod/iPodSD.h
Normal file
78
Src/Plugins/Portable/pmp_ipod/iPodSD.h
Normal file
@@ -0,0 +1,78 @@
|
||||
#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);
|
||||
};
|
Reference in New Issue
Block a user