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 | |||