summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorg Schuler <jcsjcs@users.sourceforge.net>2007-04-28 02:54:05 +0000
committerJorg Schuler <jcsjcs@users.sourceforge.net>2007-04-28 02:54:05 +0000
commit448cbda6e8a40e8707c5ac056f6fe06564907c0a (patch)
tree56f2dc44819518a5cff9e5e1772cb5e1413b9b59
parent0983e6467424f45b73cde91847c7a18f9ceecc3b (diff)
downloadlibgpod-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--ChangeLog9
-rw-r--r--docs/reference/tmpl/artwork.sgml8
-rw-r--r--docs/reference/tmpl/device.sgml4
-rw-r--r--docs/reference/tmpl/itunesdb-db.sgml4
-rw-r--r--docs/reference/tmpl/photodb.sgml8
-rw-r--r--docs/reference/tmpl/playlists.sgml4
-rw-r--r--docs/reference/tmpl/smart-playlists.sgml12
-rw-r--r--docs/reference/tmpl/track.sgml8
-rw-r--r--src/itdb.h94
9 files changed, 132 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ef91d2..f0a03bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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:
diff --git a/src/itdb.h b/src/itdb.h
index e557e6e..42adf86 100644
--- a/src/itdb.h
+++ b/src/itdb.h
@@ -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;