diff options
author | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2007-04-28 02:54:05 +0000 |
---|---|---|
committer | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2007-04-28 02:54:05 +0000 |
commit | 448cbda6e8a40e8707c5ac056f6fe06564907c0a (patch) | |
tree | 56f2dc44819518a5cff9e5e1772cb5e1413b9b59 | |
parent | 0983e6467424f45b73cde91847c7a18f9ceecc3b (diff) | |
download | libgpod-448cbda6e8a40e8707c5ac056f6fe06564907c0a.tar.gz libgpod-448cbda6e8a40e8707c5ac056f6fe06564907c0a.tar.xz libgpod-448cbda6e8a40e8707c5ac056f6fe06564907c0a.zip |
* src/itdb.h: added padding to exported structures so new entries
can be added without loosing backward run-time compatibility.
Comments welcome.
git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1420 f01d2545-417e-4e96-918e-98f8d0dbbcb6
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | docs/reference/tmpl/artwork.sgml | 8 | ||||
-rw-r--r-- | docs/reference/tmpl/device.sgml | 4 | ||||
-rw-r--r-- | docs/reference/tmpl/itunesdb-db.sgml | 4 | ||||
-rw-r--r-- | docs/reference/tmpl/photodb.sgml | 8 | ||||
-rw-r--r-- | docs/reference/tmpl/playlists.sgml | 4 | ||||
-rw-r--r-- | docs/reference/tmpl/smart-playlists.sgml | 12 | ||||
-rw-r--r-- | docs/reference/tmpl/track.sgml | 8 | ||||
-rw-r--r-- | src/itdb.h | 94 |
9 files changed, 132 insertions, 19 deletions
@@ -1,3 +1,9 @@ +2007-04-28 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/itdb.h: added padding to exported structures so new entries + can be added without loosing backward run-time compatibility. + + 2007-04-27 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/itdb.h @@ -36,7 +42,8 @@ enum ItdbLimitSort (new) enum ItdbSPLMatch (new) removed SPL_MAXSTRINGLENGTH (use ITDB_SPL_STRING_MAXLEN) - + + * docs/reference/tmpl/device.sgml docs/reference/tmpl/itunesdb-time.sgml docs/reference/tmpl/libgpod-unused.sgml diff --git a/docs/reference/tmpl/artwork.sgml b/docs/reference/tmpl/artwork.sgml index 644980b..efc25fc 100644 --- a/docs/reference/tmpl/artwork.sgml +++ b/docs/reference/tmpl/artwork.sgml @@ -32,6 +32,10 @@ album/track artwork. For working with photos, see the @creation_date: @digitized_date: @artwork_size: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: @usertype: @userdata: @userdata_duplicate: @@ -54,6 +58,10 @@ album/track artwork. For working with photos, see the @height: @horizontal_padding: @vertical_padding: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: <!-- ##### ENUM ItdbThumbType ##### --> <para> diff --git a/docs/reference/tmpl/device.sgml b/docs/reference/tmpl/device.sgml index 4323e53..9273deb 100644 --- a/docs/reference/tmpl/device.sgml +++ b/docs/reference/tmpl/device.sgml @@ -164,6 +164,10 @@ These functions are for reading and setting information about the iPod. @ipod_model: @ipod_generation: @musicdirs: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: <!-- ##### ENUM Itdb_IpodModel ##### --> <para> diff --git a/docs/reference/tmpl/itunesdb-db.sgml b/docs/reference/tmpl/itunesdb-db.sgml index d49d074..9e3ee10 100644 --- a/docs/reference/tmpl/itunesdb-db.sgml +++ b/docs/reference/tmpl/itunesdb-db.sgml @@ -109,6 +109,10 @@ to the library _duplicate()/_free() functions. @device: @version: @id: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: @usertype: @userdata: @userdata_duplicate: diff --git a/docs/reference/tmpl/photodb.sgml b/docs/reference/tmpl/photodb.sgml index b00d20a..2bd3543 100644 --- a/docs/reference/tmpl/photodb.sgml +++ b/docs/reference/tmpl/photodb.sgml @@ -112,6 +112,10 @@ directory of the libgpod source for an example of how to use the interface. @unk048: @album_id: @prev_album_id: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: @usertype: @userdata: @userdata_duplicate: @@ -125,6 +129,10 @@ directory of the libgpod source for an example of how to use the interface. @photos: @photoalbums: @device: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: @usertype: @userdata: @userdata_duplicate: diff --git a/docs/reference/tmpl/playlists.sgml b/docs/reference/tmpl/playlists.sgml index c40a238..1bfcdb8 100644 --- a/docs/reference/tmpl/playlists.sgml +++ b/docs/reference/tmpl/playlists.sgml @@ -39,6 +39,10 @@ a playlist, etc. @podcastflag: @splpref: @splrules: +@reserved100: +@reserved101: +@reserved_int1: +@reserved_int2: @reserved1: @reserved2: @usertype: diff --git a/docs/reference/tmpl/smart-playlists.sgml b/docs/reference/tmpl/smart-playlists.sgml index b370276..0fe0b18 100644 --- a/docs/reference/tmpl/smart-playlists.sgml +++ b/docs/reference/tmpl/smart-playlists.sgml @@ -29,6 +29,10 @@ These functions and structures are for dealing with smart playlists. @limitsort: @limitvalue: @matchcheckedonly: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: <!-- ##### STRUCT Itdb_SPLRule ##### --> <para> @@ -49,6 +53,10 @@ These functions and structures are for dealing with smart playlists. @unk060: @unk064: @unk068: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: <!-- ##### STRUCT Itdb_SPLRules ##### --> <para> @@ -58,6 +66,10 @@ These functions and structures are for dealing with smart playlists. @unk004: @match_operator: @rules: +@reserved_int1: +@reserved_int2: +@reserved1: +@reserved2: <!-- ##### ENUM ItdbLimitSort ##### --> <para> diff --git a/docs/reference/tmpl/track.sgml b/docs/reference/tmpl/track.sgml index 95c2550..ffc0028 100644 --- a/docs/reference/tmpl/track.sgml +++ b/docs/reference/tmpl/track.sgml @@ -124,6 +124,14 @@ information about an iPod track. @chapterdata_raw: @chapterdata_raw_length: @artwork: +@reserved_int1: +@reserved_int2: +@reserved_int3: +@reserved_int4: +@reserved_int5: +@reserved_int6: +@reserved1: +@reserved2: @usertype: @userdata: @userdata_duplicate: @@ -110,20 +110,24 @@ typedef enum { } Itdb_IpodModel; struct _Itdb_IpodInfo { - /* model_number is abbreviated: if the first character is not - numeric, it is ommited. e.g. "MA350 -> A350", "M9829 -> 9829" */ - const gchar *model_number; - const double capacity; /* in GB */ - const Itdb_IpodModel ipod_model; - const Itdb_IpodGeneration ipod_generation; - /* Number of music (Fnn) dirs created by iTunes. The exact - number seems to be version dependent. Therefore, the - numbers here represent a mixture of reported values and - common sense. Note: this number does not necessarily - represent the number of dirs present on a particular - iPod. It is used when setting up a new iPod from - scratch. */ - const guint musicdirs; + /* model_number is abbreviated: if the first character is not + numeric, it is ommited. e.g. "MA350 -> A350", "M9829 -> 9829" */ + const gchar *model_number; + const double capacity; /* in GB */ + const Itdb_IpodModel ipod_model; + const Itdb_IpodGeneration ipod_generation; + /* Number of music (Fnn) dirs created by iTunes. The exact number + seems to be version dependent. Therefore, the numbers here + represent a mixture of reported values and common sense. Note: + this number does not necessarily represent the number of dirs + present on a particular iPod. It is used when setting up a new + iPod from scratch. */ + const guint musicdirs; + /* reserved for future use */ + const gint reserved_int1; + const gint reserved_int2; + gconstpointer reserved1; + gconstpointer reserved2; }; @@ -350,8 +354,12 @@ struct _Itdb_SPLPref guint32 limitsort; /* See types defined above */ guint32 limitvalue; /* The value typed next to "Limit type" */ - guint8 matchcheckedonly; /* "Match only checked songs" check - box */ + guint8 matchcheckedonly; /* "Match only checked songs" check box */ + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; }; struct _Itdb_SPLRule @@ -380,6 +388,11 @@ struct _Itdb_SPLRule guint32 unk060; guint32 unk064; guint32 unk068; + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; }; @@ -389,6 +402,11 @@ struct _Itdb_SPLRules guint32 match_operator; /* "All" (logical AND): Itdb_SPLMATCH_AND, "Any" (logical OR): Itdb_SPLMATCH_OR */ GList *rules; + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; }; @@ -448,6 +466,11 @@ struct _Itdb_Thumb { gint16 height; gint16 horizontal_padding; gint16 vertical_padding; + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; }; struct _Itdb_Artwork { @@ -465,6 +488,11 @@ struct _Itdb_Artwork { guint32 artwork_size; /* Size in bytes of the original source image (PhotoDB only -- don't touch in case of ArtworkDB!) */ + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; /* below is for use by application */ guint64 usertype; gpointer userdata; @@ -479,6 +507,11 @@ struct _Itdb_PhotoDB GList *photos; /* (Itdb_Artwork *) */ GList *photoalbums; /* (Itdb_PhotoAlbum *) */ Itdb_Device *device;/* iPod device info */ + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; /* below is for use by application */ guint64 usertype; gpointer userdata; @@ -495,6 +528,11 @@ struct _Itdb_iTunesDB Itdb_Device *device;/* iPod device info */ guint32 version; guint64 id; + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; /* below is for use by application */ guint64 usertype; gpointer userdata; @@ -531,6 +569,11 @@ struct _Itdb_PhotoAlbum /* set automatically at time of writing the PhotoDB */ gint32 album_id; gint32 prev_album_id; + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; /* below is for use by application */ guint64 usertype; gpointer userdata; @@ -556,8 +599,13 @@ struct _Itdb_Playlist guint32 podcastflag; /* ITDB_PL_FLAG_NORM/_PODCAST */ Itdb_SPLPref splpref; /* smart playlist prefs */ Itdb_SPLRules splrules; /* rules for smart playlists */ - gpointer reserved1; /* reserved for MHOD100 implementation */ - gpointer reserved2; /* reserved for MHOD100 implementation */ + gpointer reserved100; /* reserved for MHOD100 implementation */ + gpointer reserved101; /* reserved for MHOD100 implementation */ + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gpointer reserved1; + gpointer reserved2; /* below is for use by application */ guint64 usertype; gpointer userdata; @@ -867,6 +915,16 @@ struct _Itdb_Track /* This is for Cover Art support */ struct _Itdb_Artwork *artwork; + /* reserved for future use */ + gint32 reserved_int1; + gint32 reserved_int2; + gint32 reserved_int3; + gint32 reserved_int4; + gint32 reserved_int5; + gint32 reserved_int6; + gpointer reserved1; + gpointer reserved2; + /* below is for use by application */ guint64 usertype; gpointer userdata; |