98 lines
1.9 KiB
C
98 lines
1.9 KiB
C
|
#ifndef _IPOD_INFO_H_
|
||
|
#define _IPOD_INFO_H_
|
||
|
|
||
|
#define RGB_565 0
|
||
|
#define RGB_555 1
|
||
|
#define RGB_555_REC 2
|
||
|
typedef enum {
|
||
|
THUMB_INVALID = -1,
|
||
|
THUMB_COVER_SMALL,
|
||
|
THUMB_COVER_MEDIUM1,
|
||
|
THUMB_COVER_MEDIUM2,
|
||
|
THUMB_COVER_MEDIUM3,
|
||
|
THUMB_COVER_MEDIUM4,
|
||
|
THUMB_COVER_LARGE,
|
||
|
THUMB_PHOTO_SMALL,
|
||
|
THUMB_PHOTO_LARGE,
|
||
|
THUMB_PHOTO_FULL_SCREEN,
|
||
|
THUMB_PHOTO_TV_SCREEN,
|
||
|
} ThumbType;
|
||
|
|
||
|
typedef enum {
|
||
|
IPOD_COLOR_WHITE,
|
||
|
IPOD_COLOR_BLACK,
|
||
|
IPOD_COLOR_SILVER,
|
||
|
IPOD_COLOR_BLUE,
|
||
|
IPOD_COLOR_PINK,
|
||
|
IPOD_COLOR_GREEN,
|
||
|
IPOD_COLOR_ORANGE,
|
||
|
IPOD_COLOR_GOLD,
|
||
|
IPOD_COLOR_RED,
|
||
|
IPOD_COLOR_U2,
|
||
|
} iPodColor;
|
||
|
|
||
|
typedef enum {
|
||
|
IPOD_MODEL_INVALID=0,
|
||
|
IPOD_MODEL_COLOR=1,
|
||
|
IPOD_MODEL_REGULAR=2,
|
||
|
IPOD_MODEL_MINI=3,
|
||
|
IPOD_MODEL_SHUFFLE=4,
|
||
|
IPOD_MODEL_VIDEO=5,
|
||
|
IPOD_MODEL_NANO=6,
|
||
|
IPOD_MODEL_CLASSIC=7,
|
||
|
IPOD_MODEL_FATNANO=8,
|
||
|
IPOD_MODEL_TOUCH=9,
|
||
|
} iPodModel;
|
||
|
|
||
|
typedef struct {
|
||
|
ThumbType type;
|
||
|
int width;
|
||
|
int height;
|
||
|
int correlation_id;
|
||
|
int format;
|
||
|
int row_align;
|
||
|
int image_align;
|
||
|
} ArtworkFormat;
|
||
|
|
||
|
struct iPodModelInfo
|
||
|
{
|
||
|
// model_number is abbreviated: if the first character is not numeric, it is ommited. e.g. "MA350 -> A350", "M9829 -> 9829"
|
||
|
const wchar_t *model_number;
|
||
|
iPodModel model;
|
||
|
iPodColor color;
|
||
|
int image16;
|
||
|
int image160;
|
||
|
};
|
||
|
|
||
|
class iPodInfo
|
||
|
{
|
||
|
public:
|
||
|
iPodInfo(const iPodModelInfo *model);
|
||
|
~iPodInfo();
|
||
|
void SetFWID(const uint8_t *new_fwid);
|
||
|
int family_id;
|
||
|
wchar_t *model_number;
|
||
|
iPodModel model;
|
||
|
iPodColor color;
|
||
|
int image16;
|
||
|
int image160;
|
||
|
// Store the supported artwork formats if we
|
||
|
// can dynamically read it from the extended sysinfo xml
|
||
|
ArtworkFormat* supportedArtworkFormats;
|
||
|
size_t numberOfSupportedFormats;
|
||
|
unsigned char *fwid;
|
||
|
unsigned int shadow_db_version;
|
||
|
};
|
||
|
|
||
|
struct _iPodSerialToModel {
|
||
|
const wchar_t *serial;
|
||
|
const wchar_t *model_number;
|
||
|
};
|
||
|
typedef struct _iPodSerialToModel iPodSerialToModel;
|
||
|
|
||
|
iPodInfo *GetiPodInfo(wchar_t drive);
|
||
|
|
||
|
const ArtworkFormat* GetArtworkFormats(const iPodInfo* info);
|
||
|
|
||
|
#endif //_IPOD_INFO_H_
|