itdb.h   itdb.h 
skipping to change at line 32 skipping to change at line 32
| Lesser General Public License for more details. | Lesser General Public License for more details.
| |
| You should have received a copy of the GNU Lesser General Public | You should have received a copy of the GNU Lesser General Public
| License along with this code; if not, write to the Free Software | License along with this code; if not, write to the Free Software
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A
| |
| iTunes and iPod are trademarks of Apple | iTunes and iPod are trademarks of Apple
| |
| This product is not supported/written/published by Apple! | This product is not supported/written/published by Apple!
| |
| $Id: itdb.h 2272 2009-03-14 18:02:16Z teuf $ | $Id$
*/ */
#ifndef __ITUNESDB_H__ #ifndef __ITUNESDB_H__
#define __ITUNESDB_H__ #define __ITUNESDB_H__
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
# include <config.h> # include <config.h>
#endif #endif
#include <sys/types.h> #include <sys/types.h>
skipping to change at line 108 skipping to change at line 108
* @ITDB_IPOD_GENERATION_SECOND: Second Generation iPod * @ITDB_IPOD_GENERATION_SECOND: Second Generation iPod
* @ITDB_IPOD_GENERATION_THIRD: Third Generation iPod * @ITDB_IPOD_GENERATION_THIRD: Third Generation iPod
* @ITDB_IPOD_GENERATION_FOURTH: Fourth Generation iPod * @ITDB_IPOD_GENERATION_FOURTH: Fourth Generation iPod
* @ITDB_IPOD_GENERATION_PHOTO: Photo iPod * @ITDB_IPOD_GENERATION_PHOTO: Photo iPod
* @ITDB_IPOD_GENERATION_MOBILE: Mobile iPod * @ITDB_IPOD_GENERATION_MOBILE: Mobile iPod
* @ITDB_IPOD_GENERATION_MINI_1: First Generation iPod Mini * @ITDB_IPOD_GENERATION_MINI_1: First Generation iPod Mini
* @ITDB_IPOD_GENERATION_MINI_2: Second Generation iPod Mini * @ITDB_IPOD_GENERATION_MINI_2: Second Generation iPod Mini
* @ITDB_IPOD_GENERATION_SHUFFLE_1: First Generation iPod Shuffle * @ITDB_IPOD_GENERATION_SHUFFLE_1: First Generation iPod Shuffle
* @ITDB_IPOD_GENERATION_SHUFFLE_2: Second Generation iPod Shuffle * @ITDB_IPOD_GENERATION_SHUFFLE_2: Second Generation iPod Shuffle
* @ITDB_IPOD_GENERATION_SHUFFLE_3: Third Generation iPod Shuffle * @ITDB_IPOD_GENERATION_SHUFFLE_3: Third Generation iPod Shuffle
* @ITDB_IPOD_GENERATION_SHUFFLE_4: Third Generation iPod Shuffle
* @ITDB_IPOD_GENERATION_NANO_1: First Generation iPod Nano * @ITDB_IPOD_GENERATION_NANO_1: First Generation iPod Nano
* @ITDB_IPOD_GENERATION_NANO_2: Second Generation iPod Nano * @ITDB_IPOD_GENERATION_NANO_2: Second Generation iPod Nano
* @ITDB_IPOD_GENERATION_NANO_3: Third Generation iPod Nano * @ITDB_IPOD_GENERATION_NANO_3: Third Generation iPod Nano
* @ITDB_IPOD_GENERATION_NANO_4: Fourth Generation iPod Nano * @ITDB_IPOD_GENERATION_NANO_4: Fourth Generation iPod Nano
* @ITDB_IPOD_GENERATION_NANO_5: Fifth Generation iPod Nano (with camera )
* @ITDB_IPOD_GENERATION_VIDEO_1: First Generation iPod Video (aka 5g) * @ITDB_IPOD_GENERATION_VIDEO_1: First Generation iPod Video (aka 5g)
* @ITDB_IPOD_GENERATION_VIDEO_2: Second Generation iPod Video (aka 5.5g) * @ITDB_IPOD_GENERATION_VIDEO_2: Second Generation iPod Video (aka 5.5g)
* @ITDB_IPOD_GENERATION_CLASSIC_1: First Generation iPod Classic * @ITDB_IPOD_GENERATION_CLASSIC_1: First Generation iPod Classic
* @ITDB_IPOD_GENERATION_CLASSIC_2: Second Generation iPod Classic * @ITDB_IPOD_GENERATION_CLASSIC_2: Second Generation iPod Classic
* @ITDB_IPOD_GENERATION_CLASSIC_3: Third Generation iPod Classic
* @ITDB_IPOD_GENERATION_TOUCH_1: First Generation iPod Touch * @ITDB_IPOD_GENERATION_TOUCH_1: First Generation iPod Touch
* @ITDB_IPOD_GENERATION_TOUCH_2: Second Generation iPod Touch
* @ITDB_IPOD_GENERATION_TOUCH_3: Third Generation iPod Touch
* @ITDB_IPOD_GENERATION_IPHONE_1: First Generation iPhone * @ITDB_IPOD_GENERATION_IPHONE_1: First Generation iPhone
* @ITDB_IPOD_GENERATION_IPHONE_2: Second Generation iPhone (aka iPhone 3G
)
* @ITDB_IPOD_GENERATION_IPHONE_3: Third Generation iPhone (aka iPhone 3GS
)
* *
* iPod generation information * iPod generation information
* *
* See http://support.apple.com/kb/HT1353 and http://en.wikipedia.org/wiki/ IPod * See http://support.apple.com/kb/HT1353 and http://en.wikipedia.org/wiki/ IPod
* for more details. * for more details.
* *
* Since: 0.4.0 * Since: 0.4.0
*/ */
typedef enum { typedef enum {
ITDB_IPOD_GENERATION_UNKNOWN, ITDB_IPOD_GENERATION_UNKNOWN,
skipping to change at line 149 skipping to change at line 156
ITDB_IPOD_GENERATION_NANO_1, ITDB_IPOD_GENERATION_NANO_1,
ITDB_IPOD_GENERATION_NANO_2, ITDB_IPOD_GENERATION_NANO_2,
ITDB_IPOD_GENERATION_NANO_3, ITDB_IPOD_GENERATION_NANO_3,
ITDB_IPOD_GENERATION_NANO_4, ITDB_IPOD_GENERATION_NANO_4,
ITDB_IPOD_GENERATION_VIDEO_1, ITDB_IPOD_GENERATION_VIDEO_1,
ITDB_IPOD_GENERATION_VIDEO_2, ITDB_IPOD_GENERATION_VIDEO_2,
ITDB_IPOD_GENERATION_CLASSIC_1, ITDB_IPOD_GENERATION_CLASSIC_1,
ITDB_IPOD_GENERATION_CLASSIC_2, ITDB_IPOD_GENERATION_CLASSIC_2,
ITDB_IPOD_GENERATION_TOUCH_1, ITDB_IPOD_GENERATION_TOUCH_1,
ITDB_IPOD_GENERATION_IPHONE_1, ITDB_IPOD_GENERATION_IPHONE_1,
ITDB_IPOD_GENERATION_SHUFFLE_4,
ITDB_IPOD_GENERATION_TOUCH_2,
ITDB_IPOD_GENERATION_IPHONE_2,
ITDB_IPOD_GENERATION_IPHONE_3,
ITDB_IPOD_GENERATION_CLASSIC_3,
ITDB_IPOD_GENERATION_NANO_5,
ITDB_IPOD_GENERATION_TOUCH_3
} Itdb_IpodGeneration; } Itdb_IpodGeneration;
/** /**
* Itdb_IpodModel: * Itdb_IpodModel:
* @ITDB_IPOD_MODEL_INVALID: Invalid model * @ITDB_IPOD_MODEL_INVALID: Invalid model
* @ITDB_IPOD_MODEL_UNKNOWN: Unknown model * @ITDB_IPOD_MODEL_UNKNOWN: Unknown model
* @ITDB_IPOD_MODEL_COLOR: Color iPod * @ITDB_IPOD_MODEL_COLOR: Color iPod
* @ITDB_IPOD_MODEL_COLOR_U2: Color iPod (U2) * @ITDB_IPOD_MODEL_COLOR_U2: Color iPod (U2)
* @ITDB_IPOD_MODEL_REGULAR: Regular iPod * @ITDB_IPOD_MODEL_REGULAR: Regular iPod
* @ITDB_IPOD_MODEL_REGULAR_U2: Regular iPod (U2) * @ITDB_IPOD_MODEL_REGULAR_U2: Regular iPod (U2)
skipping to change at line 181 skipping to change at line 195
* @ITDB_IPOD_MODEL_NANO_SILVER: iPod Nano (Silver) * @ITDB_IPOD_MODEL_NANO_SILVER: iPod Nano (Silver)
* @ITDB_IPOD_MODEL_NANO_BLUE: iPod Nano (Blue) * @ITDB_IPOD_MODEL_NANO_BLUE: iPod Nano (Blue)
* @ITDB_IPOD_MODEL_NANO_GREEN: iPod Nano (Green) * @ITDB_IPOD_MODEL_NANO_GREEN: iPod Nano (Green)
* @ITDB_IPOD_MODEL_NANO_PINK: iPod Nano (Pink) * @ITDB_IPOD_MODEL_NANO_PINK: iPod Nano (Pink)
* @ITDB_IPOD_MODEL_NANO_RED: iPod Nano (Red) * @ITDB_IPOD_MODEL_NANO_RED: iPod Nano (Red)
* @ITDB_IPOD_MODEL_NANO_YELLOW: iPod Nano (Yellow) * @ITDB_IPOD_MODEL_NANO_YELLOW: iPod Nano (Yellow)
* @ITDB_IPOD_MODEL_NANO_PURPLE: iPod Nano (Purple) * @ITDB_IPOD_MODEL_NANO_PURPLE: iPod Nano (Purple)
* @ITDB_IPOD_MODEL_NANO_ORANGE: iPod Nano (Orange) * @ITDB_IPOD_MODEL_NANO_ORANGE: iPod Nano (Orange)
* @ITDB_IPOD_MODEL_IPHONE_1: iPhone * @ITDB_IPOD_MODEL_IPHONE_1: iPhone
* @ITDB_IPOD_MODEL_SHUFFLE_SILVER: iPod Shuffle (Silver) * @ITDB_IPOD_MODEL_SHUFFLE_SILVER: iPod Shuffle (Silver)
* @ITDB_IPOD_MODEL_SHUFFLE_BLACK: iPod Shuffle (Black)
* @ITDB_IPOD_MODEL_SHUFFLE_PINK: iPod Shuffle (Pink) * @ITDB_IPOD_MODEL_SHUFFLE_PINK: iPod Shuffle (Pink)
* @ITDB_IPOD_MODEL_SHUFFLE_BLUE: iPod Shuffle (Blue) * @ITDB_IPOD_MODEL_SHUFFLE_BLUE: iPod Shuffle (Blue)
* @ITDB_IPOD_MODEL_SHUFFLE_GREEN: iPod Shuffle (Green) * @ITDB_IPOD_MODEL_SHUFFLE_GREEN: iPod Shuffle (Green)
* @ITDB_IPOD_MODEL_SHUFFLE_ORANGE: iPod Shuffle (Orange) * @ITDB_IPOD_MODEL_SHUFFLE_ORANGE: iPod Shuffle (Orange)
* @ITDB_IPOD_MODEL_SHUFFLE_PURPLE: iPod Shuffle (Purple) * @ITDB_IPOD_MODEL_SHUFFLE_PURPLE: iPod Shuffle (Purple)
* @ITDB_IPOD_MODEL_SHUFFLE_RED: iPod Shuffle (Red) * @ITDB_IPOD_MODEL_SHUFFLE_RED: iPod Shuffle (Red)
* @ITDB_IPOD_MODEL_CLASSIC_SILVER: iPod Classic (Silver) * @ITDB_IPOD_MODEL_CLASSIC_SILVER: iPod Classic (Silver)
* @ITDB_IPOD_MODEL_CLASSIC_BLACK: iPod Classic (Black) * @ITDB_IPOD_MODEL_CLASSIC_BLACK: iPod Classic (Black)
* @ITDB_IPOD_MODEL_TOUCH_BLACK: iPod Touch (Black) * @ITDB_IPOD_MODEL_TOUCH_SILVER: iPod Touch (Silver)
* @ITDB_IPOD_MODEL_IPHONE_WHITE: iPhone (White)
* @ITDB_IPOD_MODEL_IPHONE_BLACK: iPhone (Black)
* *
* iPod model information * iPod model information
* *
* Since: 0.4.0 * Since: 0.4.0
*/ */
typedef enum { typedef enum {
ITDB_IPOD_MODEL_INVALID, ITDB_IPOD_MODEL_INVALID,
ITDB_IPOD_MODEL_UNKNOWN, ITDB_IPOD_MODEL_UNKNOWN,
ITDB_IPOD_MODEL_COLOR, ITDB_IPOD_MODEL_COLOR,
ITDB_IPOD_MODEL_COLOR_U2, ITDB_IPOD_MODEL_COLOR_U2,
skipping to change at line 232 skipping to change at line 249
ITDB_IPOD_MODEL_IPHONE_1, ITDB_IPOD_MODEL_IPHONE_1,
ITDB_IPOD_MODEL_SHUFFLE_SILVER, ITDB_IPOD_MODEL_SHUFFLE_SILVER,
ITDB_IPOD_MODEL_SHUFFLE_PINK, ITDB_IPOD_MODEL_SHUFFLE_PINK,
ITDB_IPOD_MODEL_SHUFFLE_BLUE, ITDB_IPOD_MODEL_SHUFFLE_BLUE,
ITDB_IPOD_MODEL_SHUFFLE_GREEN, ITDB_IPOD_MODEL_SHUFFLE_GREEN,
ITDB_IPOD_MODEL_SHUFFLE_ORANGE, ITDB_IPOD_MODEL_SHUFFLE_ORANGE,
ITDB_IPOD_MODEL_SHUFFLE_PURPLE, ITDB_IPOD_MODEL_SHUFFLE_PURPLE,
ITDB_IPOD_MODEL_SHUFFLE_RED, ITDB_IPOD_MODEL_SHUFFLE_RED,
ITDB_IPOD_MODEL_CLASSIC_SILVER, ITDB_IPOD_MODEL_CLASSIC_SILVER,
ITDB_IPOD_MODEL_CLASSIC_BLACK, ITDB_IPOD_MODEL_CLASSIC_BLACK,
ITDB_IPOD_MODEL_TOUCH_BLACK, ITDB_IPOD_MODEL_TOUCH_SILVER,
ITDB_IPOD_MODEL_SHUFFLE_BLACK,
ITDB_IPOD_MODEL_IPHONE_WHITE,
ITDB_IPOD_MODEL_IPHONE_BLACK,
} Itdb_IpodModel; } Itdb_IpodModel;
/** /**
* Itdb_IpodInfo: * Itdb_IpodInfo:
* @model_number: The model number. This is abbreviated. If the first * @model_number: The model number. This is abbreviated. If the first
* character is not numeric, it is ommited. e.g. * character is not numeric, it is ommited. e.g.
* "MA350 -> A350", "M9829 -> 9829" * "MA350 -> A350", "M9829 -> 9829"
* @capacity: The iPod's capacity in gigabytes * @capacity: The iPod's capacity in gigabytes
* @ipod_model: The iPod model * @ipod_model: The iPod model
* @ipod_generation: The iPod generation * @ipod_generation: The iPod generation
skipping to change at line 913 skipping to change at line 933
gpointer reserved1; gpointer reserved1;
gpointer reserved2; gpointer reserved2;
/* below is for use by application */ /* below is for use by application */
guint64 usertype; guint64 usertype;
gpointer userdata; gpointer userdata;
/* functions called to duplicate/free userdata */ /* functions called to duplicate/free userdata */
ItdbUserDataDuplicateFunc userdata_duplicate; ItdbUserDataDuplicateFunc userdata_duplicate;
ItdbUserDataDestroyFunc userdata_destroy; ItdbUserDataDestroyFunc userdata_destroy;
}; };
typedef struct _Itdb_iTunesDB_Private Itdb_iTunesDB_Private;
/** /**
* Itdb_iTunesDB: * Itdb_iTunesDB:
* @tracks: A list of tracks in the database (#Itdb_Track) * @tracks: A list of tracks in the database (#Itdb_Track)
* @playlists: A list of playlists in the database (#Itdb_Playlist ) * @playlists: A list of playlists in the database (#Itdb_Playlist )
* @filename: The filename of the iTunesDB * @filename: The filename of the iTunesDB
* @device: iPod device info (#Itdb_Device) * @device: iPod device info (#Itdb_Device)
* @version: The version number of the iTunesDB * @version: The version number of the iTunesDB
* @id: A 64 bit id value for the iTunesDB * @id: A 64 bit id value for the iTunesDB
* @reserved_int1: Reserved for future use * @tzoffset: offset in seconds from UTC
* @reserved_int2: Reserved for future use * @reserved_int2: Reserved for future use
* @reserved1: Reserved for future use * @priv: Private data
* @reserved2: Reserved for future use * @reserved2: Reserved for future use
* @usertype: For use by application * @usertype: For use by application
* @userdata: For use by application * @userdata: For use by application
* @userdata_duplicate: A function to duplicate #userdata * @userdata_duplicate: A function to duplicate #userdata
* @userdata_destroy: A function to free #userdata * @userdata_destroy: A function to free #userdata
* *
* Structure representing an iTunes database * Structure representing an iTunes database
*/ */
struct _Itdb_iTunesDB struct _Itdb_iTunesDB
{ {
GList *tracks; GList *tracks;
GList *playlists; GList *playlists;
gchar *filename; gchar *filename;
Itdb_Device *device; Itdb_Device *device;
guint32 version; guint32 version;
guint64 id; guint64 id;
gint32 tzoffset;
/* reserved for future use */ /* reserved for future use */
gint32 reserved_int1;
gint32 reserved_int2; gint32 reserved_int2;
gpointer reserved1; Itdb_iTunesDB_Private *priv;
gpointer reserved2; gpointer reserved2;
/* below is for use by application */ /* below is for use by application */
guint64 usertype; guint64 usertype;
gpointer userdata; gpointer userdata;
/* functions called to duplicate/free userdata */ /* functions called to duplicate/free userdata */
ItdbUserDataDuplicateFunc userdata_duplicate; ItdbUserDataDuplicateFunc userdata_duplicate;
ItdbUserDataDestroyFunc userdata_destroy; ItdbUserDataDestroyFunc userdata_destroy;
}; };
/** /**
skipping to change at line 974 skipping to change at line 995
* @show_titles: Show slide captions * @show_titles: Show slide captions
* @transition_direction: Transition direction. 0=none, 1=left-to-right, * @transition_direction: Transition direction. 0=none, 1=left-to-right,
* 2=right-to-left, 3=top-to-bottom, 4=bottom-to-top * 2=right-to-left, 3=top-to-bottom, 4=bottom-to-top
* @slide_duration: Slide duration in seconds * @slide_duration: Slide duration in seconds
* @transition_duration: Transition duration, in milliseconds * @transition_duration: Transition duration, in milliseconds
* @song_id: The @dbid2 of a track to play during slideshow * @song_id: The @dbid2 of a track to play during slideshow
* @unk024: Unknown, seems to be always 0 * @unk024: Unknown, seems to be always 0
* @unk028: Unknown, seems to be always 0 * @unk028: Unknown, seems to be always 0
* @unk044: Unknown, seems to always be 0 * @unk044: Unknown, seems to always be 0
* @unk048: Unknown, seems to always be 0 * @unk048: Unknown, seems to always be 0
* @album_id: The id of the album. This is set automatically w
hen
* the PhotoDB is written.
* @prev_album_id: The id of the previous playlist. This is set * @prev_album_id: The id of the previous playlist. This is set
* automatically when the PhotoDB is written. * automatically when the PhotoDB is written.
* @reserved_int1: Reserved for future use * @reserved_int1: Reserved for future use
* @reserved_int2: Reserved for future use * @reserved_int2: Reserved for future use
* @reserved1: Reserved for future use * @reserved1: Reserved for future use
* @reserved2: Reserved for future use * @reserved2: Reserved for future use
* @usertype: For use by application * @usertype: For use by application
* @userdata: For use by application * @userdata: For use by application
* @userdata_duplicate: A function to duplicate #userdata * @userdata_duplicate: A function to duplicate #userdata
* @userdata_destroy: A function to free #userdata * @userdata_destroy: A function to free #userdata
skipping to change at line 1025 skipping to change at line 1044
gpointer reserved1; gpointer reserved1;
gpointer reserved2; gpointer reserved2;
/* below is for use by application */ /* below is for use by application */
guint64 usertype; guint64 usertype;
gpointer userdata; gpointer userdata;
/* functions called to duplicate/free userdata */ /* functions called to duplicate/free userdata */
ItdbUserDataDuplicateFunc userdata_duplicate; ItdbUserDataDuplicateFunc userdata_duplicate;
ItdbUserDataDestroyFunc userdata_destroy; ItdbUserDataDestroyFunc userdata_destroy;
}; };
typedef struct _Itdb_Playlist_Private Itdb_Playlist_Private;
/** /**
* Itdb_Playlist: * Itdb_Playlist:
* @itdb: A pointer to the #Itdb_iTunesDB (for convenience) * @itdb: A pointer to the #Itdb_iTunesDB (for convenience)
* @name: The name of the playlist in UTF8 * @name: The name of the playlist in UTF8
* @type: The playlist type (normal or master) * @type: The playlist type (normal or master)
* @flag1: Unknown, usually set to 0 * @flag1: Unknown, usually set to 0
* @flag2: Unknown, always set to 0 * @flag2: Unknown, always set to 0
* @flag3: Unknown, always set to 0 * @flag3: Unknown, always set to 0
* @num: The number of tracks in the playlist * @num: The number of tracks in the playlist
* @members: A list of tracks in the playlist (#Itdb_Track) * @members: A list of tracks in the playlist (#Itdb_Track)
skipping to change at line 1052 skipping to change at line 1072
* shown under 'Playlists' on the iPod, but as 'Podcas ts' * shown under 'Playlists' on the iPod, but as 'Podcas ts'
* under the Music menu. The actual title of the Playl ist * under the Music menu. The actual title of the Playl ist
* does not matter. If more than one playlist is set t o 1, * does not matter. If more than one playlist is set t o 1,
* they don't show up at all. * they don't show up at all.
* @splpref: Smart playlist preferences (#Itdb_SPLPref) * @splpref: Smart playlist preferences (#Itdb_SPLPref)
* @splrules: Smart playlist rules (#Itdb_SPLRules) * @splrules: Smart playlist rules (#Itdb_SPLRules)
* @reserved100: Reserved for MHOD100 implementation * @reserved100: Reserved for MHOD100 implementation
* @reserved101: Reserved for MHOD100 implementation * @reserved101: Reserved for MHOD100 implementation
* @reserved_int1: Reserved for future use * @reserved_int1: Reserved for future use
* @reserved_int2: Reserved for future use * @reserved_int2: Reserved for future use
* @reserved1: Reserved for future use * @priv: Private data
* @reserved2: Reserved for future use * @reserved2: Reserved for future use
* @usertype: For use by application * @usertype: For use by application
* @userdata: For use by application * @userdata: For use by application
* @userdata_duplicate: A function to duplicate #userdata * @userdata_duplicate: A function to duplicate #userdata
* @userdata_destroy: A function to free #userdata * @userdata_destroy: A function to free #userdata
* *
* Structure representing an iTunes Playlist * Structure representing an iTunes Playlist
*/ */
struct _Itdb_Playlist struct _Itdb_Playlist
{ {
skipping to change at line 1083 skipping to change at line 1103
guint64 id; guint64 id;
guint32 sortorder; guint32 sortorder;
guint32 podcastflag; guint32 podcastflag;
Itdb_SPLPref splpref; Itdb_SPLPref splpref;
Itdb_SPLRules splrules; Itdb_SPLRules splrules;
gpointer reserved100; gpointer reserved100;
gpointer reserved101; gpointer reserved101;
/* reserved for future use */ /* reserved for future use */
gint32 reserved_int1; gint32 reserved_int1;
gint32 reserved_int2; gint32 reserved_int2;
gpointer reserved1; Itdb_Playlist_Private *priv;
gpointer reserved2; gpointer reserved2;
/* below is for use by application */ /* below is for use by application */
guint64 usertype; guint64 usertype;
gpointer userdata; gpointer userdata;
/* functions called to duplicate/free userdata */ /* functions called to duplicate/free userdata */
ItdbUserDataDuplicateFunc userdata_duplicate; ItdbUserDataDuplicateFunc userdata_duplicate;
ItdbUserDataDestroyFunc userdata_destroy; ItdbUserDataDestroyFunc userdata_destroy;
}; };
/** /**
skipping to change at line 1183 skipping to change at line 1203
* Since: 0.5.0 * Since: 0.5.0
*/ */
typedef enum typedef enum
{ {
ITDB_MEDIATYPE_AUDIO = 0x0001, ITDB_MEDIATYPE_AUDIO = 0x0001,
ITDB_MEDIATYPE_MOVIE = 0x0002, ITDB_MEDIATYPE_MOVIE = 0x0002,
ITDB_MEDIATYPE_PODCAST = 0x0004, ITDB_MEDIATYPE_PODCAST = 0x0004,
ITDB_MEDIATYPE_AUDIOBOOK = 0x0008, ITDB_MEDIATYPE_AUDIOBOOK = 0x0008,
ITDB_MEDIATYPE_MUSICVIDEO = 0x0020, ITDB_MEDIATYPE_MUSICVIDEO = 0x0020,
ITDB_MEDIATYPE_TVSHOW = 0x0040, ITDB_MEDIATYPE_TVSHOW = 0x0040,
ITDB_MEDIATYPE_RINGTONE = 0x4000,
ITDB_MEDIATYPE_RENTAL = 0x8000,
} Itdb_Mediatype; } Itdb_Mediatype;
typedef struct _Itdb_Track_Private Itdb_Track_Private;
/** /**
* Itdb_Track: * Itdb_Track:
* @itdb: A pointer to the #Itdb_iTunesDB (for conven ience) * @itdb: A pointer to the #Itdb_iTunesDB (for conven ience)
* @title: The title of the track in UTF8 * @title: The title of the track in UTF8
* @ipod_path: The file path on the iPod. Directories are * @ipod_path: The file path on the iPod. Directories are
* separated with ":" instead of "/". The pat h is * separated with ":" instead of "/". The pat h is
* relative to the iPod mountpoint. * relative to the iPod mountpoint.
* @album: The album name in UTF8 * @album: The album name in UTF8
* @artist: The artist name in UTF8 * @artist: The artist name in UTF8
* @genre: The genre in UTF8 * @genre: The genre in UTF8
skipping to change at line 1605 skipping to change at line 1628
guint32 mediatype; guint32 mediatype;
guint32 season_nr; guint32 season_nr;
guint32 episode_nr; guint32 episode_nr;
guint32 unk220; guint32 unk220;
guint32 unk224; guint32 unk224;
guint32 unk228, unk232, unk236, unk240, unk244; guint32 unk228, unk232, unk236, unk240, unk244;
guint32 gapless_data; guint32 gapless_data;
guint32 unk252; guint32 unk252;
guint16 gapless_track_flag; guint16 gapless_track_flag;
guint16 gapless_album_flag; guint16 gapless_album_flag;
guint16 album_id; guint16 obsolete;
/* This is for Cover Art support */ /* This is for Cover Art support */
struct _Itdb_Artwork *artwork; struct _Itdb_Artwork *artwork;
/* This is for sparse artwork support, new in libgpod-0.7.0 */ /* This is for sparse artwork support, new in libgpod-0.7.0 */
guint32 mhii_link; guint32 mhii_link;
/* reserved for future use */ /* reserved for future use */
gint32 reserved_int1; gint32 reserved_int1;
gint32 reserved_int2; gint32 reserved_int2;
gint32 reserved_int3; gint32 reserved_int3;
gint32 reserved_int4; gint32 reserved_int4;
gint32 reserved_int5; gint32 reserved_int5;
gint32 reserved_int6; gint32 reserved_int6;
gpointer reserved1; Itdb_Track_Private *priv;
gpointer reserved2; gpointer reserved2;
gpointer reserved3; gpointer reserved3;
gpointer reserved4; gpointer reserved4;
gpointer reserved5; gpointer reserved5;
gpointer reserved6; gpointer reserved6;
/* +++***+++***+++***+++***+++***+++***+++***+++***+++***+++*** /* +++***+++***+++***+++***+++***+++***+++***+++***+++***+++***
When adding string fields don't forget to add them in When adding string fields don't forget to add them in
itdb_track_duplicate as well itdb_track_duplicate as well
+++***+++***+++***+++***+++***+++***+++***+++***+++***+++*** */ +++***+++***+++***+++***+++***+++***+++***+++***+++***+++*** */
skipping to change at line 1723 skipping to change at line 1746
void itdb_set_mountpoint (Itdb_iTunesDB *itdb, const gchar *mp); void itdb_set_mountpoint (Itdb_iTunesDB *itdb, const gchar *mp);
const gchar *itdb_get_mountpoint (Itdb_iTunesDB *itdb); const gchar *itdb_get_mountpoint (Itdb_iTunesDB *itdb);
gchar *itdb_get_control_dir (const gchar *mountpoint); gchar *itdb_get_control_dir (const gchar *mountpoint);
gchar *itdb_get_itunes_dir (const gchar *mountpoint); gchar *itdb_get_itunes_dir (const gchar *mountpoint);
gchar *itdb_get_music_dir (const gchar *mountpoint); gchar *itdb_get_music_dir (const gchar *mountpoint);
gchar *itdb_get_artwork_dir (const gchar *mountpoint); gchar *itdb_get_artwork_dir (const gchar *mountpoint);
gchar *itdb_get_photos_dir (const gchar *mountpoint); gchar *itdb_get_photos_dir (const gchar *mountpoint);
gchar *itdb_get_photos_thumb_dir (const gchar *mountpoint); gchar *itdb_get_photos_thumb_dir (const gchar *mountpoint);
gchar *itdb_get_device_dir (const gchar *mountpoint); gchar *itdb_get_device_dir (const gchar *mountpoint);
gchar *itdb_get_itunesdb_path (const gchar *mountpoint); gchar *itdb_get_itunesdb_path (const gchar *mountpoint);
gchar *itdb_get_itunescdb_path (const gchar *mountpoint);
gchar *itdb_get_itunessd_path (const gchar *mountpoint); gchar *itdb_get_itunessd_path (const gchar *mountpoint);
gchar *itdb_get_artworkdb_path (const gchar *mountpoint); gchar *itdb_get_artworkdb_path (const gchar *mountpoint);
gchar *itdb_get_photodb_path (const gchar *mountpoint); gchar *itdb_get_photodb_path (const gchar *mountpoint);
gchar *itdb_get_path (const gchar *dir, const gchar *file); gchar *itdb_get_path (const gchar *dir, const gchar *file);
/* itdb_device functions */ /* itdb_device functions */
Itdb_Device *itdb_device_new (void); Itdb_Device *itdb_device_new (void);
void itdb_device_free (Itdb_Device *device); void itdb_device_free (Itdb_Device *device);
void itdb_device_set_mountpoint (Itdb_Device *device, const gchar *mp); void itdb_device_set_mountpoint (Itdb_Device *device, const gchar *mp);
gboolean itdb_device_read_sysinfo (Itdb_Device *device); gboolean itdb_device_read_sysinfo (Itdb_Device *device);
skipping to change at line 1746 skipping to change at line 1770
const gchar *field, const gchar *value); const gchar *field, const gchar *value);
const Itdb_IpodInfo *itdb_device_get_ipod_info (const Itdb_Device *device); const Itdb_IpodInfo *itdb_device_get_ipod_info (const Itdb_Device *device);
const Itdb_IpodInfo *itdb_info_get_ipod_info_table (void); const Itdb_IpodInfo *itdb_info_get_ipod_info_table (void);
gboolean itdb_device_supports_artwork (const Itdb_Device *device); gboolean itdb_device_supports_artwork (const Itdb_Device *device);
gboolean itdb_device_supports_chapter_image (const Itdb_Device *device); gboolean itdb_device_supports_chapter_image (const Itdb_Device *device);
gboolean itdb_device_supports_video (const Itdb_Device *device); gboolean itdb_device_supports_video (const Itdb_Device *device);
gboolean itdb_device_supports_photo (const Itdb_Device *device); gboolean itdb_device_supports_photo (const Itdb_Device *device);
gboolean itdb_device_supports_podcast (const Itdb_Device *device); gboolean itdb_device_supports_podcast (const Itdb_Device *device);
const gchar *itdb_info_get_ipod_model_name_string (Itdb_IpodModel model); const gchar *itdb_info_get_ipod_model_name_string (Itdb_IpodModel model);
const gchar *itdb_info_get_ipod_generation_string (Itdb_IpodGeneration gene ration); const gchar *itdb_info_get_ipod_generation_string (Itdb_IpodGeneration gene ration);
gchar *itdb_device_get_uuid(const Itdb_Device *device);
/* track functions */ /* track functions */
Itdb_Track *itdb_track_new (void); Itdb_Track *itdb_track_new (void);
void itdb_track_free (Itdb_Track *track); void itdb_track_free (Itdb_Track *track);
void itdb_track_add (Itdb_iTunesDB *itdb, Itdb_Track *track, gint32 pos); void itdb_track_add (Itdb_iTunesDB *itdb, Itdb_Track *track, gint32 pos);
void itdb_track_remove (Itdb_Track *track); void itdb_track_remove (Itdb_Track *track);
void itdb_track_unlink (Itdb_Track *track); void itdb_track_unlink (Itdb_Track *track);
Itdb_Track *itdb_track_duplicate (Itdb_Track *tr); Itdb_Track *itdb_track_duplicate (Itdb_Track *tr);
Itdb_Track *itdb_track_by_id (Itdb_iTunesDB *itdb, guint32 id); Itdb_Track *itdb_track_by_id (Itdb_iTunesDB *itdb, guint32 id);
GTree *itdb_track_id_tree_create (Itdb_iTunesDB *itdb); GTree *itdb_track_id_tree_create (Itdb_iTunesDB *itdb);
 End of changes. 26 change blocks. 
14 lines changed or deleted 40 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/