From: <tmz...@us...> - 2008-07-17 16:23:57
|
Revision: 2050 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2050&view=rev Author: tmzullinger Date: 2008-07-17 16:10:33 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Remove references to itdb_thumb_get_gdk_pixbuf() Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/README libgpod/trunk/bindings/python/gpod.i.in libgpod/trunk/bindings/python/ipod.py libgpod/trunk/docs/reference/libgpod-sections.txt libgpod/trunk/docs/reference/tmpl/artwork.sgml libgpod/trunk/docs/reference/tmpl/itunesdb-db.sgml libgpod/trunk/src/itdb.h Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/ChangeLog 2008-07-17 16:10:33 UTC (rev 2050) @@ -1,3 +1,13 @@ +2008-07-17 Todd Zullinger <tmzullinger at users.sourceforge.net> + + * README + bindings/python/gpod.i.in + bindings/python/ipod.py + docs/reference/libgpod-sections.txt + docs/reference/tmpl/artwork.sgml + docs/reference/tmpl/itunesdb-db.sgml + src/itdb.h: Remove references to itdb_thumb_get_gdk_pixbuf() + 2008-07-10 Christophe Fergeau <te...@gn...> * src/db-artwork-writer.c: if we fail to write ithmb files for some Modified: libgpod/trunk/README =================================================================== --- libgpod/trunk/README 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/README 2008-07-17 16:10:33 UTC (rev 2050) @@ -48,11 +48,9 @@ are available. Please see itdb.h for details (itdb_playlist_*()). Each track can have a thumbnail associated with it. You can retrieve a -GdkPixmap of the thumbnail using itdb_thumb_get_gdk_pixbuf() (tracks -have thumbnails of the following types associated: -ITDB_THUMB_COVER_SMALL and _LARGE). You can remove a thumbnail with -itdb_track_remove_thumbnails(). And finally, you can set a new -thumbnail using itdb_track_set_thumbnails(). +GdkPixmap of the thumbnail using itdb_artwork_get_pixbuf(). You can +remove a thumbnail with itdb_track_remove_thumbnails(). And finally, +you can set a new thumbnail using itdb_track_set_thumbnails(). Please note that iTunes additionally stores the artwork as tags in the original music file. That's also from where the data is read when Modified: libgpod/trunk/bindings/python/gpod.i.in =================================================================== --- libgpod/trunk/bindings/python/gpod.i.in 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/bindings/python/gpod.i.in 2008-07-17 16:10:33 UTC (rev 2050) @@ -487,7 +487,7 @@ #ifdef HAVE_GDKPIXBUF #ifdef HAVE_PYGOBJECT -%typemap(out) gpointer itdb_thumb_get_gdk_pixbuf { +%typemap(out) gpointer itdb_artwork_get_pixbuf { $result = pygobject_new((GObject *)$1); g_object_unref($1); } Modified: libgpod/trunk/bindings/python/ipod.py =================================================================== --- libgpod/trunk/bindings/python/ipod.py 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/bindings/python/ipod.py 2008-07-17 16:10:33 UTC (rev 2050) @@ -1023,10 +1023,10 @@ def get_pixbuf(self): # this deals with coverart and photo albums if hasattr(self.__ownerobject._database,"_itdb"): - return gpod.itdb_thumb_get_gdk_pixbuf( + return gpod.itdb_artwork_get_pixbuf( self.__ownerobject._database._itdb.device, self._thumbnail) else: - return gpod.itdb_thumb_get_gdk_pixbuf( + return gpod.itdb_artwork_get_pixbuf( self.__ownerobject._database.device, self._thumbnail) Modified: libgpod/trunk/docs/reference/libgpod-sections.txt =================================================================== --- libgpod/trunk/docs/reference/libgpod-sections.txt 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/docs/reference/libgpod-sections.txt 2008-07-17 16:10:33 UTC (rev 2050) @@ -188,7 +188,6 @@ itdb_artwork_remove_thumbnail itdb_artwork_remove_thumbnails itdb_artwork_get_thumb_by_type -itdb_thumb_get_gdk_pixbuf itdb_thumb_duplicate itdb_thumb_free itdb_thumb_new Modified: libgpod/trunk/docs/reference/tmpl/artwork.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/artwork.sgml 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/docs/reference/tmpl/artwork.sgml 2008-07-17 16:10:33 UTC (rev 2050) @@ -101,16 +101,6 @@ @artwork: -<!-- ##### FUNCTION itdb_thumb_get_gdk_pixbuf ##### --> -<para> - -</para> - -@device: -@thumb: -@Returns: - - <!-- ##### FUNCTION itdb_thumb_duplicate ##### --> <para> Modified: libgpod/trunk/docs/reference/tmpl/itunesdb-db.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/itunesdb-db.sgml 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/docs/reference/tmpl/itunesdb-db.sgml 2008-07-17 16:10:33 UTC (rev 2050) @@ -59,11 +59,9 @@ <para> Each track can have a thumbnail associated with it. You can retrieve a GdkPixmap of the thumbnail using -itdb_thumb_get_gdk_pixbuf() (tracks have thumbnails of the -following types associated: @ITDB_THUMB_COVER_SMALL and -@ITDB_THUMB_COVER_LARGE). You can remove a thumbnail with -itdb_track_remove_thumbnails(). And finally, you can set a -new thumbnail using itdb_track_set_thumbnails(). +itdb_artwork_get_pixbuf(). You can remove a thumbnail with +itdb_track_remove_thumbnails(). And finally, you can set a new +thumbnail using itdb_track_set_thumbnails(). </para> <para> Please note that iTunes additionally stores the artwork as tags Modified: libgpod/trunk/src/itdb.h =================================================================== --- libgpod/trunk/src/itdb.h 2008-07-16 23:43:38 UTC (rev 2049) +++ libgpod/trunk/src/itdb.h 2008-07-17 16:10:33 UTC (rev 2050) @@ -1184,11 +1184,10 @@ Itdb_PhotoAlbum *itdb_photodb_photoalbum_by_name(Itdb_PhotoDB *db, const gchar *albumname ); -/* itdb_artwork_... -- you probably won't need many of these (probably - * with the exception of itdb_artwork_get_thumb_by_type() and - * itdb_thumb_get_gdk_pixbuf() probably). Use the itdb_photodb_...() - * functions when adding photos, and the itdb_track_...() functions - * when adding coverart to audio. */ +/* itdb_artwork_... -- you probably won't need many of these (with + * the exception of itdb_artwork_get_pixbuf() probably). Use the + * itdb_photodb_...() functions when adding photos, and the + * itdb_track_...() functions when adding coverart to audio. */ Itdb_Artwork *itdb_artwork_new (void); Itdb_Artwork *itdb_artwork_duplicate (Itdb_Artwork *artwork); void itdb_artwork_free (Itdb_Artwork *artwork); @@ -1204,14 +1203,12 @@ gint rotation, GError **error); void itdb_artwork_remove_thumbnails (Itdb_Artwork *artwork); +/* the following function returns a pointer to a GdkPixbuf if + gdk-pixbuf is installed -- a NULL pointer otherwise. */ gpointer itdb_artwork_get_pixbuf (Itdb_Device *device, Itdb_Artwork *artwork, gint width, gint height); /* itdb_thumb_... */ -/* the following function returns a pointer to a GdkPixbuf if - gdk-pixbuf is installed -- a NULL pointer otherwise. */ -gpointer itdb_thumb_get_gdk_pixbuf (Itdb_Device *device, - Itdb_Thumb *thumb); Itdb_Thumb *itdb_thumb_duplicate (Itdb_Thumb *thumb); void itdb_thumb_free (Itdb_Thumb *thumb); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-19 08:57:02
|
Revision: 2054 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2054&view=rev Author: jcsjcs Date: 2008-07-19 08:57:02 +0000 (Sat, 19 Jul 2008) Log Message: ----------- * src/itdb_device.c: assume the following generations do not support sparse artwork: ITDB_IPOD_GENERATION_NANO_1: ITDB_IPOD_GENERATION_NANO_2: ITDB_IPOD_GENERATION_VIDEO_1: ITDB_IPOD_GENERATION_VIDEO_2: Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/docs/reference/tmpl/artwork.sgml libgpod/trunk/docs/reference/tmpl/device.sgml libgpod/trunk/docs/reference/tmpl/libgpod-unused.sgml libgpod/trunk/src/itdb_device.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-18 16:08:57 UTC (rev 2053) +++ libgpod/trunk/ChangeLog 2008-07-19 08:57:02 UTC (rev 2054) @@ -1,3 +1,12 @@ +2008-0-18 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/itdb_device.c: assume the following generations do not + support sparse artwork: + ITDB_IPOD_GENERATION_NANO_1: + ITDB_IPOD_GENERATION_NANO_2: + ITDB_IPOD_GENERATION_VIDEO_1: + ITDB_IPOD_GENERATION_VIDEO_2: + 2008-07-17 Todd Zullinger <tmzullinger at users.sourceforge.net> * README Modified: libgpod/trunk/docs/reference/tmpl/artwork.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/artwork.sgml 2008-07-18 16:08:57 UTC (rev 2053) +++ libgpod/trunk/docs/reference/tmpl/artwork.sgml 2008-07-19 08:57:02 UTC (rev 2054) @@ -50,24 +50,6 @@ @data_type: @rotation: -<!-- ##### ENUM ItdbThumbType ##### --> -<para> - -</para> - -@ITDB_THUMB_COVER_SMALL: -@ITDB_THUMB_COVER_LARGE: -@ITDB_THUMB_PHOTO_SMALL: -@ITDB_THUMB_PHOTO_LARGE: -@ITDB_THUMB_PHOTO_FULL_SCREEN: -@ITDB_THUMB_PHOTO_TV_SCREEN: -@ITDB_THUMB_COVER_XLARGE: -@ITDB_THUMB_COVER_MEDIUM: -@ITDB_THUMB_COVER_SMEDIUM: -@ITDB_THUMB_COVER_XSMALL: -@ITDB_THUMB_CHAPTER_SMALL: -@ITDB_THUMB_CHAPTER_LARGE: - <!-- ##### FUNCTION itdb_artwork_new ##### --> <para> Modified: libgpod/trunk/docs/reference/tmpl/device.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/device.sgml 2008-07-18 16:08:57 UTC (rev 2053) +++ libgpod/trunk/docs/reference/tmpl/device.sgml 2008-07-19 08:57:02 UTC (rev 2054) @@ -183,8 +183,7 @@ @ITDB_IPOD_GENERATION_VIDEO_2: @ITDB_IPOD_GENERATION_CLASSIC_1: @ITDB_IPOD_GENERATION_TOUCH_1: -@ITDB_IPOD_GENERATION_FIFTH: -@ITDB_IPOD_GENERATION_SIXTH: +@ITDB_IPOD_GENERATION_IPHONE_1: <!-- ##### STRUCT Itdb_IpodInfo ##### --> <para> @@ -236,6 +235,7 @@ @ITDB_IPOD_MODEL_SHUFFLE_GREEN: @ITDB_IPOD_MODEL_SHUFFLE_ORANGE: @ITDB_IPOD_MODEL_SHUFFLE_PURPLE: +@ITDB_IPOD_MODEL_SHUFFLE_RED: @ITDB_IPOD_MODEL_CLASSIC_SILVER: @ITDB_IPOD_MODEL_CLASSIC_BLACK: @ITDB_IPOD_MODEL_TOUCH_BLACK: @@ -245,11 +245,18 @@ </para> -@type: +@format_id: @width: @height: -@format_id: @format: @padding: @crop: +@rotation: +@back_color: +@display_width: +@interlaced: +@align_row_bytes: +@color_adjustment: +@gamma: +@associated_format: Modified: libgpod/trunk/docs/reference/tmpl/libgpod-unused.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/libgpod-unused.sgml 2008-07-18 16:08:57 UTC (rev 2053) +++ libgpod/trunk/docs/reference/tmpl/libgpod-unused.sgml 2008-07-19 08:57:02 UTC (rev 2054) @@ -129,6 +129,24 @@ @ITDB_FILE_ERROR_RENAME: @ITDB_FILE_ERROR_ITDB_CORRUPT: +<!-- ##### ENUM ItdbThumbType ##### --> +<para> + +</para> + +@ITDB_THUMB_COVER_SMALL: +@ITDB_THUMB_COVER_LARGE: +@ITDB_THUMB_PHOTO_SMALL: +@ITDB_THUMB_PHOTO_LARGE: +@ITDB_THUMB_PHOTO_FULL_SCREEN: +@ITDB_THUMB_PHOTO_TV_SCREEN: +@ITDB_THUMB_COVER_XLARGE: +@ITDB_THUMB_COVER_MEDIUM: +@ITDB_THUMB_COVER_SMEDIUM: +@ITDB_THUMB_COVER_XSMALL: +@ITDB_THUMB_CHAPTER_SMALL: +@ITDB_THUMB_CHAPTER_LARGE: + <!-- ##### ENUM Itdb_Generation ##### --> <para> Modified: libgpod/trunk/src/itdb_device.c =================================================================== --- libgpod/trunk/src/itdb_device.c 2008-07-18 16:08:57 UTC (rev 2053) +++ libgpod/trunk/src/itdb_device.c 2008-07-19 08:57:02 UTC (rev 2054) @@ -995,13 +995,13 @@ case ITDB_IPOD_GENERATION_SHUFFLE_1: case ITDB_IPOD_GENERATION_SHUFFLE_2: case ITDB_IPOD_GENERATION_SHUFFLE_3: - supports_sparse_artwork = FALSE; - break; case ITDB_IPOD_GENERATION_NANO_1: case ITDB_IPOD_GENERATION_NANO_2: - case ITDB_IPOD_GENERATION_NANO_3: case ITDB_IPOD_GENERATION_VIDEO_1: case ITDB_IPOD_GENERATION_VIDEO_2: + supports_sparse_artwork = FALSE; + break; + case ITDB_IPOD_GENERATION_NANO_3: case ITDB_IPOD_GENERATION_CLASSIC_1: case ITDB_IPOD_GENERATION_TOUCH_1: case ITDB_IPOD_GENERATION_IPHONE_1: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-19 13:14:09
|
Revision: 2055 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2055&view=rev Author: jcsjcs Date: 2008-07-19 13:14:13 +0000 (Sat, 19 Jul 2008) Log Message: ----------- * src/itdb_device.c (itdb_device_set_timezone_info): avoid g_stat on NULL filename. Thanks to Andrea. Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_device.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-19 08:57:02 UTC (rev 2054) +++ libgpod/trunk/ChangeLog 2008-07-19 13:14:13 UTC (rev 2055) @@ -1,5 +1,10 @@ -2008-0-18 Jorg Schuler <jcsjcs at users.sourceforge.net> +2008-07-18 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/itdb_device.c (itdb_device_set_timezone_info): avoid g_stat + on NULL filename. Thanks to Andrea. + +2008-07-18 Jorg Schuler <jcsjcs at users.sourceforge.net> + * src/itdb_device.c: assume the following generations do not support sparse artwork: ITDB_IPOD_GENERATION_NANO_1: Modified: libgpod/trunk/src/itdb_device.c =================================================================== --- libgpod/trunk/src/itdb_device.c 2008-07-19 08:57:02 UTC (rev 2054) +++ libgpod/trunk/src/itdb_device.c 2008-07-19 13:14:13 UTC (rev 2055) @@ -1445,6 +1445,11 @@ device->timezone_shift = get_local_timezone (); prefs_path = get_preferences_path (device); + + if (!prefs_path) { + return; + } + status = g_stat (prefs_path, &stat_buf); if (status != 0) { g_free (prefs_path); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-07-20 14:43:18
|
Revision: 2060 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2060&view=rev Author: jcsjcs Date: 2008-07-20 14:43:19 +0000 (Sun, 20 Jul 2008) Log Message: ----------- * src/ithumb-writer.c (pack_RGB_565), (pack_RGB_555) (pack_RGB_888): handle horizontal padding correctly (affected pictures in portrait format). * src/itdb_device.c: added some comments. Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_device.c libgpod/trunk/src/ithumb-writer.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-20 12:49:55 UTC (rev 2059) +++ libgpod/trunk/ChangeLog 2008-07-20 14:43:19 UTC (rev 2060) @@ -1,3 +1,11 @@ +2008-07-20 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/ithumb-writer.c (pack_RGB_565), (pack_RGB_555) + (pack_RGB_888): handle horizontal padding correctly + (affected pictures in portrait format). + + * src/itdb_device.c: added some comments. + 2008-07-18 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/itdb_device.c (itdb_device_set_timezone_info): avoid g_stat Modified: libgpod/trunk/src/itdb_device.c =================================================================== --- libgpod/trunk/src/itdb_device.c 2008-07-20 12:49:55 UTC (rev 2059) +++ libgpod/trunk/src/itdb_device.c 2008-07-20 14:43:19 UTC (rev 2060) @@ -357,6 +357,7 @@ { -1, -1, -1, -1} }; +/* also used for 3G Nano */ static const Itdb_ArtworkFormat ipod_classic_1_cover_art_info[] = { /* officially 55x55 -- verify! */ {1061, 56, 56, THUMB_FORMAT_RGB565_LE}, @@ -365,6 +366,7 @@ { -1, -1, -1, -1} }; +/* also used for 3G Nano */ static const Itdb_ArtworkFormat ipod_classic_1_photo_info[] = { {1067, 720, 480, THUMB_FORMAT_I420_LE}, {1024, 320, 240, THUMB_FORMAT_RGB565_LE}, @@ -372,6 +374,7 @@ { -1, -1, -1, -1} }; +/* also used for 3G Nano */ static const Itdb_ArtworkFormat ipod_classic_1_chapter_image_info[] = { /* These are the same as for the iPod video... -- labeled by the iPod as "chapter images" */ Modified: libgpod/trunk/src/ithumb-writer.c =================================================================== --- libgpod/trunk/src/ithumb-writer.c 2008-07-20 12:49:55 UTC (rev 2059) +++ libgpod/trunk/src/ithumb-writer.c 2008-07-20 14:43:19 UTC (rev 2060) @@ -154,7 +154,8 @@ } else { guchar *cur_pixel; - cur_pixel = &pixels[h*row_stride + w*channels]; + cur_pixel = &pixels[h*row_stride + + (w - horizontal_padding)*channels]; packed_pixel = get_RGB_565_pixel (cur_pixel, byte_order); } result[line + w] = packed_pixel; @@ -260,7 +261,8 @@ } else { guchar *cur_pixel; - cur_pixel = &pixels[h*row_stride + w*channels]; + cur_pixel = &pixels[h*row_stride + + (w-horizontal_padding)*channels]; packed_pixel = get_RGB_555_pixel (cur_pixel, byte_order, FALSE); } @@ -356,7 +358,8 @@ } else { guchar *cur_pixel; - cur_pixel = &pixels[h*row_stride + w*channels]; + cur_pixel = &pixels[h*row_stride + + (w-horizontal_padding)*channels]; packed_pixel = get_RGB_888_pixel (cur_pixel, byte_order, FALSE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-25 22:18:35
|
Revision: 2063 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2063&view=rev Author: teuf Date: 2008-07-25 22:18:43 +0000 (Fri, 25 Jul 2008) Log Message: ----------- * tests/test-fw-id.c: (main): add missing call to g_type_init Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/tests/test-fw-id.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-21 11:38:25 UTC (rev 2062) +++ libgpod/trunk/ChangeLog 2008-07-25 22:18:43 UTC (rev 2063) @@ -1,3 +1,7 @@ +2008-07-26 Christophe Fergeau <te...@gn...> + + * tests/test-fw-id.c: (main): add missing call to g_type_init + 2008-07-20 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/ithumb-writer.c (pack_RGB_565), (pack_RGB_555) Modified: libgpod/trunk/tests/test-fw-id.c =================================================================== --- libgpod/trunk/tests/test-fw-id.c 2008-07-21 11:38:25 UTC (rev 2062) +++ libgpod/trunk/tests/test-fw-id.c 2008-07-25 22:18:43 UTC (rev 2063) @@ -31,6 +31,8 @@ #include <time.h> #include <libintl.h> +#include <glib-object.h> + #include "itdb.h" #include "itdb_device.h" @@ -45,6 +47,8 @@ return 1; } + + g_type_init (); device = itdb_device_new (); if (device == NULL) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-29 20:09:21
|
Revision: 2066 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2066&view=rev Author: teuf Date: 2008-07-29 20:09:30 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Add error handling to the plist XML parser Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_device.c libgpod/trunk/src/itdb_plist.c libgpod/trunk/src/itdb_plist.h libgpod/trunk/src/itdb_sysinfo_extended_parser.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-27 18:15:24 UTC (rev 2065) +++ libgpod/trunk/ChangeLog 2008-07-29 20:09:30 UTC (rev 2066) @@ -1,3 +1,12 @@ +2008-07-27 Christophe Fergeau <te...@gn...> + + * src/itdb_device.c: add itdb_device_error_quark() + * src/itdb_plist.h: + * src/itdb_plist.c: add error handling to XML parsing (using + GError) + * src/itdb_sysinfo_extended_parser.c: pass a NULL GError to call to + plist parsing function + 2008-07-26 Christophe Fergeau <te...@gn...> * tests/test-fw-id.c: (main): add missing call to g_type_init Modified: libgpod/trunk/src/itdb_device.c =================================================================== --- libgpod/trunk/src/itdb_device.c 2008-07-27 18:15:24 UTC (rev 2065) +++ libgpod/trunk/src/itdb_device.c 2008-07-29 20:09:30 UTC (rev 2066) @@ -1691,3 +1691,12 @@ */ return g_hash_table_lookup (model_table->serial_hash, serial+len-3); } + +GQuark itdb_device_error_quark (void) +{ + static GQuark quark = 0; + if (!quark) { + quark = g_quark_from_static_string ("itdb-device-error-quark"); + } + return quark; +} Modified: libgpod/trunk/src/itdb_plist.c =================================================================== --- libgpod/trunk/src/itdb_plist.c 2008-07-27 18:15:24 UTC (rev 2065) +++ libgpod/trunk/src/itdb_plist.c 2008-07-29 20:09:30 UTC (rev 2066) @@ -66,7 +66,7 @@ #define DEBUG(...) #endif -static GValue *parse_node (xmlNode *a_node); +static GValue *parse_node (xmlNode *a_node, GError **error); static void value_free (GValue *val) @@ -76,14 +76,21 @@ } static GValue * -parse_integer(xmlNode *a_node) +parse_integer(xmlNode *a_node, GError **error) { char *str_val; + char *end_ptr; gint int_val; GValue *value; str_val = (char *)xmlNodeGetContent(a_node); - int_val = strtol (str_val, NULL, 0); + int_val = strtol (str_val, &end_ptr, 0); + if (*end_ptr != '\0') { + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "invalid integer value: %s", str_val); + xmlFree (str_val); + return NULL; + } xmlFree (str_val); value = g_new0(GValue, 1); @@ -94,7 +101,7 @@ } static GValue * -parse_string(xmlNode *a_node) +parse_string(xmlNode *a_node, G_GNUC_UNUSED GError **error) { char *str_val; GValue *value; @@ -111,14 +118,21 @@ } static GValue * -parse_real(xmlNode *a_node) +parse_real(xmlNode *a_node, GError **error) { char *str_val; + char *end_ptr; gfloat double_val; GValue *value; str_val = (char *)xmlNodeGetContent(a_node); - double_val = g_ascii_strtod (str_val, NULL); + double_val = g_ascii_strtod (str_val, &end_ptr); + if (*end_ptr != '\0') { + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "invalid real value: %s", str_val); + xmlFree (str_val); + return NULL; + } xmlFree (str_val); value = g_new0(GValue, 1); @@ -129,7 +143,7 @@ } static GValue * -parse_boolean (xmlNode *a_node) +parse_boolean (xmlNode *a_node, GError **error) { gboolean bool_val; GValue *value; @@ -139,7 +153,8 @@ } else if (strcmp ((char *)a_node->name, "false") == 0) { bool_val = FALSE; } else { - DEBUG ("unexpected boolean value\n"); + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "unexpected boolean value: %s", a_node->name); return NULL; } @@ -151,7 +166,7 @@ } static GValue * -parse_data (xmlNode *a_node) +parse_data (xmlNode *a_node, G_GNUC_UNUSED GError **error) { char *str_val; guchar *raw_data; @@ -173,7 +188,7 @@ } static xmlNode * -parse_one_dict_entry (xmlNode *a_node, GHashTable *dict) +parse_one_dict_entry (xmlNode *a_node, GHashTable *dict, GError **error) { xmlNode *cur_node = a_node; xmlChar *key_name; @@ -186,6 +201,8 @@ cur_node = cur_node->next; } if (cur_node == NULL) { + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "Dict entry contains no <key> node"); return NULL; } key_name = xmlNodeGetContent(cur_node); @@ -194,14 +211,19 @@ cur_node = cur_node->next; } if (cur_node == NULL) { - DEBUG ("<key> %s with no corresponding value node", key_name); + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "<key> %s with no corresponding value node", key_name); xmlFree (key_name); return NULL; } - value = parse_node (cur_node); + value = parse_node (cur_node, error); if (value != NULL) { g_hash_table_insert (dict, g_strdup ((char *)key_name), value); + } else { + g_warning ("Couldn't parse value for %s: %s", + key_name, (*error)->message); + g_clear_error (error); } xmlFree (key_name); @@ -209,7 +231,7 @@ } static GValue * -parse_dict (xmlNode *a_node) +parse_dict (xmlNode *a_node, GError **error) { xmlNode *cur_node = a_node->children; GValue *value; @@ -219,9 +241,11 @@ g_free, (GDestroyNotify)value_free); while (cur_node != NULL) { - cur_node = parse_one_dict_entry (cur_node, dict); + cur_node = parse_one_dict_entry (cur_node, dict, error); } - + if ((error != NULL) && (*error != NULL)) { + return NULL; + } value = g_new0 (GValue, 1); value = g_value_init (value, G_TYPE_HASH_TABLE); g_value_take_boxed (value, dict); @@ -229,7 +253,7 @@ return value; } -typedef GValue *(*ParseCallback) (xmlNode *); +typedef GValue *(*ParseCallback) (xmlNode *, GError **); struct Parser { const char * const type_name; ParseCallback parser; @@ -245,14 +269,14 @@ {"array", parse_dict}, {NULL, NULL} }; -static GValue *parse_node (xmlNode *a_node) +static GValue *parse_node (xmlNode *a_node, GError **error) { guint i = 0; g_return_val_if_fail (a_node != NULL, FALSE); while (parsers[i].type_name != NULL) { if (xmlStrcmp (a_node->name, (xmlChar *)parsers[i].type_name) == 0) { if (parsers[i].parser != NULL) { - return parsers[i].parser (a_node); + return parsers[i].parser (a_node, error); } } i++; @@ -262,15 +286,17 @@ } static GValue * -itdb_plist_parse (xmlNode * a_node) +itdb_plist_parse (xmlNode * a_node, GError **error) { xmlNode *cur_node; if (a_node == NULL) { - DEBUG ("empty file\n"); + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "Empty XML document"); return NULL; } if (xmlStrcmp (a_node->name, (xmlChar *)"plist") != 0) { - DEBUG ("not a plist file\n"); + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "XML document does not seem to be a plist document"); return NULL; } cur_node = a_node->xmlChildrenNode; @@ -278,13 +304,15 @@ cur_node = cur_node->next; } if (cur_node != NULL) { - return parse_node (cur_node); + return parse_node (cur_node, error); } + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "Empty XML document"); return NULL; } GValue * -itdb_plist_parse_from_file (const char *filename) +itdb_plist_parse_from_file (const char *filename, GError **error) { xmlDoc *doc = NULL; xmlNode *root_element = NULL; @@ -293,13 +321,14 @@ doc = xmlReadFile(filename, NULL, 0); if (doc == NULL) { - printf("error: could not parse file %s\n", filename); + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "Error during XML parsing of file %s", filename); return NULL; } root_element = xmlDocGetRootElement(doc); - parsed_doc = itdb_plist_parse (root_element); + parsed_doc = itdb_plist_parse (root_element, error); xmlFreeDoc(doc); xmlCleanupParser(); @@ -308,7 +337,7 @@ } GValue * -itdb_plist_parse_from_memory (const char *data, gsize len) +itdb_plist_parse_from_memory (const char *data, gsize len, GError **error) { xmlDoc *doc = NULL; xmlNode *root_element = NULL; @@ -317,13 +346,14 @@ doc = xmlReadMemory(data, len, "noname.xml", NULL, 0); if (doc == NULL) { - printf("error: could not parse data from memory\n"); + g_set_error (error, ITDB_DEVICE_ERROR, ITDB_DEVICE_ERROR_XML_PARSING, + "Error during XML parsing of in-memory data"); return NULL; } root_element = xmlDocGetRootElement(doc); - parsed_doc = itdb_plist_parse (root_element); + parsed_doc = itdb_plist_parse (root_element, error); xmlFreeDoc(doc); xmlCleanupParser(); @@ -334,13 +364,15 @@ #include <glib-object.h> #include "itdb_plist.h" -GValue *itdb_plist_parse_from_file (G_GNUC_UNUSED const char *filename) +GValue *itdb_plist_parse_from_file (G_GNUC_UNUSED const char *filename, + G_GNUC_UNUSED GError **error) { return NULL; } GValue *itdb_plist_parse_from_memory (G_GNUC_UNUSED const char *data, - G_GNUC_UNUSED gsize len) + G_GNUC_UNUSED gsize len, + G_GNUC_UNUSED GError **error) { return NULL; } Modified: libgpod/trunk/src/itdb_plist.h =================================================================== --- libgpod/trunk/src/itdb_plist.h 2008-07-27 18:15:24 UTC (rev 2065) +++ libgpod/trunk/src/itdb_plist.h 2008-07-29 20:09:30 UTC (rev 2066) @@ -33,9 +33,21 @@ G_BEGIN_DECLS -G_GNUC_INTERNAL GValue *itdb_plist_parse_from_file (const char *filename); +typedef enum { + ITDB_DEVICE_ERROR_XML_PARSING +} ItdbDeviceError; + +/* Error domain */ +#define ITDB_DEVICE_ERROR itdb_device_error_quark () +GQuark itdb_device_error_quark (void); + + + +G_GNUC_INTERNAL GValue *itdb_plist_parse_from_file (const char *filename, + GError **error); G_GNUC_INTERNAL GValue *itdb_plist_parse_from_memory (const char *data, - gsize len); + gsize len, + GError **error); G_END_DECLS Modified: libgpod/trunk/src/itdb_sysinfo_extended_parser.c =================================================================== --- libgpod/trunk/src/itdb_sysinfo_extended_parser.c 2008-07-27 18:15:24 UTC (rev 2065) +++ libgpod/trunk/src/itdb_sysinfo_extended_parser.c 2008-07-29 20:09:30 UTC (rev 2066) @@ -507,7 +507,7 @@ g_return_val_if_fail (filename != NULL, NULL); - parsed_doc = itdb_plist_parse_from_file (filename); + parsed_doc = itdb_plist_parse_from_file (filename, NULL); if (parsed_doc == NULL) { return NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-29 20:10:04
|
Revision: 2067 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2067&view=rev Author: teuf Date: 2008-07-29 20:10:13 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Use GError in SysInfoExtended parsing Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_device.c libgpod/trunk/src/itdb_sysinfo_extended_parser.c libgpod/trunk/src/itdb_sysinfo_extended_parser.h libgpod/trunk/tests/test-sysinfo-extended-parsing.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-29 20:09:30 UTC (rev 2066) +++ libgpod/trunk/ChangeLog 2008-07-29 20:10:13 UTC (rev 2067) @@ -1,5 +1,15 @@ 2008-07-27 Christophe Fergeau <te...@gn...> + * src/itdb_sysinfo_extended_parser.c: + * src/itdb_sysinfo_extended_parser.h: add a GError argument to + SysInfoExtended parsing functions + * src/itdb_device.c: pass NULL GError argument to call to + SysInfoExtended functions + * tests/test-sysinfo-extended.c: add a GError argument when calling + SysInfoExtended parsing functions + +2008-07-27 Christophe Fergeau <te...@gn...> + * src/itdb_device.c: add itdb_device_error_quark() * src/itdb_plist.h: * src/itdb_plist.c: add error handling to XML parsing (using Modified: libgpod/trunk/src/itdb_device.c =================================================================== --- libgpod/trunk/src/itdb_device.c 2008-07-29 20:09:30 UTC (rev 2066) +++ libgpod/trunk/src/itdb_device.c 2008-07-29 20:10:13 UTC (rev 2067) @@ -642,7 +642,7 @@ sysinfo_ex_path = itdb_resolve_path (dev_path, p_sysinfo_ex); g_free (dev_path); if (!sysinfo_ex_path) return; - device->sysinfo_extended = itdb_sysinfo_extended_parse (sysinfo_ex_path); + device->sysinfo_extended = itdb_sysinfo_extended_parse (sysinfo_ex_path, NULL); g_free (sysinfo_ex_path); if ((device->sysinfo != NULL) && (device->sysinfo_extended != NULL)) { Modified: libgpod/trunk/src/itdb_sysinfo_extended_parser.c =================================================================== --- libgpod/trunk/src/itdb_sysinfo_extended_parser.c 2008-07-29 20:09:30 UTC (rev 2066) +++ libgpod/trunk/src/itdb_sysinfo_extended_parser.c 2008-07-29 20:10:13 UTC (rev 2067) @@ -460,6 +460,7 @@ *img_formats = g_list_prepend (*img_formats, format); } } + static GList *parse_one_formats_list (GHashTable *sysinfo_dict, const char *key) { @@ -500,14 +501,15 @@ return props; } -SysInfoIpodProperties *itdb_sysinfo_extended_parse (const char *filename) +SysInfoIpodProperties *itdb_sysinfo_extended_parse (const char *filename, + GError **error) { GValue *parsed_doc; SysInfoIpodProperties *props; g_return_val_if_fail (filename != NULL, NULL); - parsed_doc = itdb_plist_parse_from_file (filename, NULL); + parsed_doc = itdb_plist_parse_from_file (filename, error); if (parsed_doc == NULL) { return NULL; } Modified: libgpod/trunk/src/itdb_sysinfo_extended_parser.h =================================================================== --- libgpod/trunk/src/itdb_sysinfo_extended_parser.h 2008-07-29 20:09:30 UTC (rev 2066) +++ libgpod/trunk/src/itdb_sysinfo_extended_parser.h 2008-07-29 20:10:13 UTC (rev 2067) @@ -35,7 +35,8 @@ typedef struct _SysInfoIpodProperties SysInfoIpodProperties; void itdb_sysinfo_properties_dump (SysInfoIpodProperties *props); -SysInfoIpodProperties *itdb_sysinfo_extended_parse (const char *filename); +SysInfoIpodProperties *itdb_sysinfo_extended_parse (const char *filename, + GError **error); void itdb_sysinfo_properties_free (SysInfoIpodProperties *props); const char * Modified: libgpod/trunk/tests/test-sysinfo-extended-parsing.c =================================================================== --- libgpod/trunk/tests/test-sysinfo-extended-parsing.c 2008-07-29 20:09:30 UTC (rev 2066) +++ libgpod/trunk/tests/test-sysinfo-extended-parsing.c 2008-07-29 20:10:13 UTC (rev 2067) @@ -6,14 +6,14 @@ int main (int argc, char **argv) { SysInfoIpodProperties *props; - + GError *error = NULL; if (argc != 2) return(1); g_type_init (); - props = itdb_sysinfo_extended_parse (argv[1]); + props = itdb_sysinfo_extended_parse (argv[1], &error); if (props == NULL) { - g_print ("Couldn't parse %s\n", argv[1]); + g_print ("Couldn't parse %s: %s\n", argv[1], error->message); } itdb_sysinfo_properties_dump (props); itdb_sysinfo_properties_free (props); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-29 20:10:30
|
Revision: 2068 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2068&view=rev Author: teuf Date: 2008-07-29 20:10:39 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Add gtk-doc documentation Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_plist.c libgpod/trunk/src/itdb_sysinfo_extended_parser.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-29 20:10:13 UTC (rev 2067) +++ libgpod/trunk/ChangeLog 2008-07-29 20:10:39 UTC (rev 2068) @@ -1,5 +1,10 @@ 2008-07-27 Christophe Fergeau <te...@gn...> + * src/itdb_sysinfo_extended_parser.c: + * src/itdb_plist.c: add gtk-doc documentation + +2008-07-27 Christophe Fergeau <te...@gn...> + * src/itdb_sysinfo_extended_parser.c: * src/itdb_sysinfo_extended_parser.h: add a GError argument to SysInfoExtended parsing functions Modified: libgpod/trunk/src/itdb_plist.c =================================================================== --- libgpod/trunk/src/itdb_plist.c 2008-07-29 20:10:13 UTC (rev 2067) +++ libgpod/trunk/src/itdb_plist.c 2008-07-29 20:10:39 UTC (rev 2068) @@ -311,6 +311,17 @@ return NULL; } +/** + * itdb_plist_parse: + * @filename: name of the XML plist file to parse + * @error: return location for a #GError + * + * Returns: NULL on error (@error will be set), a newly allocated GValue + * containing a GHashTable otherwise. + * + * Parses the XML plist file stored in @filename. If an error occurs during + * the parsing, itdb_plist_parse will return NULL and @error will be set + **/ GValue * itdb_plist_parse_from_file (const char *filename, GError **error) { @@ -336,6 +347,19 @@ return parsed_doc; } +/** + * itdb_plist_parse_from_memory: + * @data: memory location containing XML plist data to parse + * @len: length in bytes of the string to parse + * @error: return location for a #GError + * + * Returns: NULL on error (@error will be set), a newly allocated GValue + * containing a GHashTable otherwise. + * + * Parses the XML plist file stored in @data which length is @len bytes. If + * an error occurs during the parsing, itdb_plist_parse_from_memory will + * return NULL and @error will be set + **/ GValue * itdb_plist_parse_from_memory (const char *data, gsize len, GError **error) { Modified: libgpod/trunk/src/itdb_sysinfo_extended_parser.c =================================================================== --- libgpod/trunk/src/itdb_sysinfo_extended_parser.c 2008-07-29 20:10:13 UTC (rev 2067) +++ libgpod/trunk/src/itdb_sysinfo_extended_parser.c 2008-07-29 20:10:39 UTC (rev 2068) @@ -501,6 +501,18 @@ return props; } +/** + * itdb_sysinfo_extended_parse: + * @filename: name of the SysInfoExtended file to parse + * @error: return location for a #GError + * Returns: a newly allocated #SysInfoIpodProperties which must be freed + * after use, or NULL if an error occurred during the parsing + * + * itdb_sysinfo_extended_parse() parses a SysInfoExtended file into a + * #SysInfoIpodProperties structure. This structure contains a lot of + * information about the iPod properties (artwork format supported, podcast + * capabilities, ...) which can be queried using the appropriate accessors + **/ SysInfoIpodProperties *itdb_sysinfo_extended_parse (const char *filename, GError **error) { @@ -520,6 +532,22 @@ return props; } +/** + * itdb_sysinfo_properties_get_serial_number: + * @props: a #SysInfoIpodProperties structure + * + * Returns: the iPod serial number, NULL if the serial number wasn't set in + * @props. The returned string must not be modified nor freed. + * + * Gets the iPod serial number from @props if it was found while parsing + * @props. The serial number uniquely identify an ipod and it can be used + * to determine when it was produced and its model/color, see + * http://svn.gnome.org/viewvc/podsleuth/trunk/src/PodSleuth/PodSleuth/SerialNumber.cs?view=markup + * for more details about what the various parts of the serial number + * correspond to. Please avoid parsing this serial number by yourself and + * ask for additionnal API in libgpod if you find yourself needing to parse + * that serial number :) + **/ const char * itdb_sysinfo_properties_get_serial_number (const SysInfoIpodProperties *props) { @@ -527,6 +555,20 @@ return props->serial_number; } +/** + * itdb_sysinfo_properties_get_firewire_id: + * @props: a #SysInfoIpodProperties structure + * + * Returns: the iPod firewire ID, NULL if the serial number wasn't set in + * @props. The returned string must not be modified nor freed. + * + * Gets the iPod firewire ID from @props if it was found while parsing + * @props. Contrary to what its name implies, the firewire ID is also set + * on USB iPods and is especially important on iPod Classic and Nano Video + * since this ID (which is unique on each iPod) is needed to generate the + * checksum that is required to write a valid iPod database on these + * models. + **/ const char * itdb_sysinfo_properties_get_firewire_id (const SysInfoIpodProperties *props) { @@ -534,6 +576,15 @@ return props->firewire_guid; } +/** + * itdb_sysinfo_properties_get_cover_art_formats: + * @props: a #SysInfoIpodProperties structure + * + * Returns: a #GList of #Itdb_ArtworkFormat describing the cover art formats + * supported by the iPod described in @props. The returned list must not be + * modified nor freed. + * + **/ const GList * itdb_sysinfo_properties_get_cover_art_formats (const SysInfoIpodProperties *props) { @@ -541,6 +592,15 @@ return props->artwork_formats; } +/** + * itdb_sysinfo_properties_get_photo_formats: + * @props: a #SysInfoIpodProperties structure + * + * Returns: a #GList of #Itdb_ArtworkFormat describing the photo formats + * supported by the iPod described in @props. The returned list must not be + * modified nor freed. + * + **/ const GList * itdb_sysinfo_properties_get_photo_formats (const SysInfoIpodProperties *props) { @@ -548,6 +608,15 @@ return props->photo_formats; } +/** + * itdb_sysinfo_properties_get_chapter_image_formats: + * @props: a #SysInfoIpodProperties structure + * + * Returns: a #GList of #Itdb_ArtworkFormat describing the chapter image + * formats supported by the iPod described in @props. The returned list must + * not be modified nor freed. + * + **/ const GList * itdb_sysinfo_properties_get_chapter_image_formats (const SysInfoIpodProperties *props) { @@ -555,6 +624,17 @@ return props->chapter_image_formats; } +/** + * itdb_sysinfo_properties_supports_sparse_artwork: + * @props: a #SysInfoIpodProperties structure + * + * Returns: TRUE if the iPod supports sparse artwork, FALSE if it does not + * or if @props doesn't contain any information about sparse artwork + * + * Sparse artwork is a way to share artwork between different iPod tracks + * which make things more efficient space-wise. This function can be used + * to check if the more space-efficient artwork storage can be used. + **/ G_GNUC_INTERNAL gboolean itdb_sysinfo_properties_supports_sparse_artwork (const SysInfoIpodProperties *props) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-29 20:10:59
|
Revision: 2069 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2069&view=rev Author: teuf Date: 2008-07-29 20:11:04 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Mask symbols from the SysInfoExtended parser Modified Paths: -------------- libgpod/trunk/src/itdb_sysinfo_extended_parser.h libgpod/trunk/tests/Makefile.am Modified: libgpod/trunk/src/itdb_sysinfo_extended_parser.h =================================================================== --- libgpod/trunk/src/itdb_sysinfo_extended_parser.h 2008-07-29 20:10:39 UTC (rev 2068) +++ libgpod/trunk/src/itdb_sysinfo_extended_parser.h 2008-07-29 20:11:04 UTC (rev 2069) @@ -34,15 +34,20 @@ typedef struct _SysInfoIpodProperties SysInfoIpodProperties; -void itdb_sysinfo_properties_dump (SysInfoIpodProperties *props); +G_GNUC_INTERNAL void +itdb_sysinfo_properties_dump (SysInfoIpodProperties *props); + +G_GNUC_INTERNAL SysInfoIpodProperties *itdb_sysinfo_extended_parse (const char *filename, GError **error); + +G_GNUC_INTERNAL void itdb_sysinfo_properties_free (SysInfoIpodProperties *props); -const char * +G_GNUC_INTERNAL const char * itdb_sysinfo_properties_get_serial_number (const SysInfoIpodProperties *props); -const char * +G_GNUC_INTERNAL const char * itdb_sysinfo_properties_get_firewire_id (const SysInfoIpodProperties *props); G_GNUC_INTERNAL const GList * Modified: libgpod/trunk/tests/Makefile.am =================================================================== --- libgpod/trunk/tests/Makefile.am 2008-07-29 20:10:39 UTC (rev 2068) +++ libgpod/trunk/tests/Makefile.am 2008-07-29 20:11:04 UTC (rev 2069) @@ -37,8 +37,13 @@ test_firewire_id_SOURCES = test-fw-id.c -test_sysinfo_extended_parsing_SOURCES = test-sysinfo-extended-parsing.c +test_sysinfo_extended_parsing_SOURCES = \ + test-sysinfo-extended-parsing.c \ + $(top_srcdir)/src/itdb_plist.c \ + $(top_srcdir)/src/itdb_sysinfo_extended_parser.c +test_sysinfo_extended_parsing_LDADD = + get_timezone_SOURCES = get-timezone.c noinst_PROGRAMS=test-itdb test-ls test-checksum test-firewire-id \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-29 20:11:28
|
Revision: 2070 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2070&view=rev Author: teuf Date: 2008-07-29 20:11:37 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Some public API work, hide ItdbThumbType as well as ItdbThumbIpod Modified Paths: -------------- libgpod/trunk/src/itdb.h libgpod/trunk/src/itdb_thumb.c libgpod/trunk/src/itdb_thumb.h libgpod/trunk/tests/test-covers.c libgpod/trunk/tests/test-photos.c Modified: libgpod/trunk/src/itdb.h =================================================================== --- libgpod/trunk/src/itdb.h 2008-07-29 20:11:04 UTC (rev 2069) +++ libgpod/trunk/src/itdb.h 2008-07-29 20:11:37 UTC (rev 2070) @@ -478,18 +478,6 @@ /* one star is how much (track->rating) */ #define ITDB_RATING_STEP 20 -/* Types of thumbnails in Itdb_Image */ -enum _ItdbThumbDataType { - ITDB_THUMB_TYPE_INVALID, - ITDB_THUMB_TYPE_FILE, - ITDB_THUMB_TYPE_MEMORY, - ITDB_THUMB_TYPE_PIXBUF, - ITDB_THUMB_TYPE_IPOD -}; -typedef enum _ItdbThumbDataType ItdbThumbDataType; - - - struct _Itdb_Artwork { Itdb_Thumb *thumbnail; guint32 id; /* Artwork id used by photoalbums, starts at @@ -1210,6 +1198,9 @@ /* itdb_thumb_... */ Itdb_Thumb *itdb_thumb_duplicate (Itdb_Thumb *thumb); +gpointer itdb_thumb_to_pixbuf_at_size (Itdb_Device *dev, Itdb_Thumb *thumb, + gint width, gint height); +GList *itdb_thumb_to_pixbufs (Itdb_Device *dev, Itdb_Thumb *thumb); void itdb_thumb_free (Itdb_Thumb *thumb); /* itdb_chapterdata_... */ Modified: libgpod/trunk/src/itdb_thumb.c =================================================================== --- libgpod/trunk/src/itdb_thumb.c 2008-07-29 20:11:04 UTC (rev 2069) +++ libgpod/trunk/src/itdb_thumb.c 2008-07-29 20:11:37 UTC (rev 2070) @@ -504,7 +504,7 @@ return pixbuf; } -GList *itdb_thumb_ipod_to_pixbufs (Itdb_Device *dev, Itdb_Thumb_Ipod *thumb) +static GList *itdb_thumb_ipod_to_pixbufs (Itdb_Device *dev, Itdb_Thumb_Ipod *thumb) { const GList *items; GList *pixbufs = NULL; @@ -524,6 +524,28 @@ return pixbufs; } + +GList *itdb_thumb_to_pixbufs (Itdb_Device *dev, Itdb_Thumb *thumb) +{ + GList *pixbufs = NULL; + GdkPixbuf *pixbuf; + + switch (thumb->data_type) { + case ITDB_THUMB_TYPE_IPOD: + pixbufs = itdb_thumb_ipod_to_pixbufs (dev, (Itdb_Thumb_Ipod *)thumb); + break; + case ITDB_THUMB_TYPE_FILE: + case ITDB_THUMB_TYPE_MEMORY: + case ITDB_THUMB_TYPE_PIXBUF: + pixbuf = itdb_thumb_to_pixbuf_at_size (dev, thumb, -1, -1); + pixbufs = g_list_append (pixbufs, pixbuf); + break; + case ITDB_THUMB_TYPE_INVALID: + g_assert_not_reached (); + } + + return pixbufs; +} #else gpointer itdb_thumb_to_pixbuf_at_size (Itdb_Device *dev, Itdb_Thumb *thumb, gint width, gint height) @@ -531,7 +553,8 @@ return NULL; } -GList *itdb_thumb_ipod_to_pixbufs (Itdb_Device *dev, Itdb_Thumb_Ipod *thumb) + +GList *itdb_thumb_to_pixbufs (Itdb_Device *dev, Itdb_Thumb *thumb) { return NULL; } Modified: libgpod/trunk/src/itdb_thumb.h =================================================================== --- libgpod/trunk/src/itdb_thumb.h 2008-07-29 20:11:04 UTC (rev 2069) +++ libgpod/trunk/src/itdb_thumb.h 2008-07-29 20:11:37 UTC (rev 2070) @@ -26,6 +26,16 @@ #include "itdb.h" #include "itdb_device.h" +/* Types of thumbnails in Itdb_Image */ +enum _ItdbThumbDataType { + ITDB_THUMB_TYPE_INVALID, + ITDB_THUMB_TYPE_FILE, + ITDB_THUMB_TYPE_MEMORY, + ITDB_THUMB_TYPE_PIXBUF, + ITDB_THUMB_TYPE_IPOD +}; +typedef enum _ItdbThumbDataType ItdbThumbDataType; + /* The Itdb_Thumb structure can represent two slightly different thumbnails: @@ -105,10 +115,7 @@ G_GNUC_INTERNAL char *itdb_thumb_ipod_get_filename (Itdb_Device *device, Itdb_Thumb_Ipod_Item *thumb); G_GNUC_INTERNAL Itdb_Thumb_Ipod_Item *itdb_thumb_ipod_get_item_by_type (Itdb_Thumb *thumbs, const Itdb_ArtworkFormat *format); -G_GNUC_INTERNAL -gpointer itdb_thumb_ipod_item_to_pixbuf (Itdb_Device *device, - Itdb_Thumb_Ipod_Item *item); -gpointer itdb_thumb_to_pixbuf_at_size (Itdb_Device *dev, Itdb_Thumb *thumb, - gint width, gint height); -GList *itdb_thumb_ipod_to_pixbufs (Itdb_Device *dev, Itdb_Thumb_Ipod *thumb); +G_GNUC_INTERNAL gpointer +itdb_thumb_ipod_item_to_pixbuf (Itdb_Device *device, + Itdb_Thumb_Ipod_Item *item); #endif Modified: libgpod/trunk/tests/test-covers.c =================================================================== --- libgpod/trunk/tests/test-covers.c 2008-07-29 20:11:04 UTC (rev 2069) +++ libgpod/trunk/tests/test-covers.c 2008-07-29 20:11:37 UTC (rev 2070) @@ -64,11 +64,11 @@ static guint count = 0; GList *it; GList *thumbs; - Itdb_Thumb_Ipod *thumb = (Itdb_Thumb_Ipod*)song->artwork->thumbnail; - if (thumb == NULL) { + if (song->artwork->thumbnail == NULL) { return; } - thumbs = itdb_thumb_ipod_to_pixbufs (song->itdb->device, thumb); + thumbs = itdb_thumb_to_pixbufs (song->itdb->device, + song->artwork->thumbnail); for (it = thumbs; it != NULL; it = it->next) { GdkPixbuf *pixbuf; Modified: libgpod/trunk/tests/test-photos.c =================================================================== --- libgpod/trunk/tests/test-photos.c 2008-07-29 20:11:04 UTC (rev 2069) +++ libgpod/trunk/tests/test-photos.c 2008-07-29 20:11:37 UTC (rev 2070) @@ -68,10 +68,8 @@ GList *it; gint i = 0; GList *thumbnails; - Itdb_Thumb_Ipod *thumb; - thumb = (Itdb_Thumb_Ipod *)artwork->thumbnail; - thumbnails = itdb_thumb_ipod_to_pixbufs (db->device, thumb); + thumbnails = itdb_thumb_to_pixbufs (db->device, artwork->thumbnail); for (it = thumbnails; it != NULL; it = it->next, i++) { gchar *filename, *path; GdkPixbuf *pixbuf; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-07-29 21:54:37
|
Revision: 2072 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2072&view=rev Author: teuf Date: 2008-07-29 21:54:46 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Fix a few issues in the API doc after the API changes that went on Modified Paths: -------------- libgpod/trunk/docs/reference/libgpod-sections.txt libgpod/trunk/docs/reference/tmpl/artwork.sgml libgpod/trunk/src/itdb_artwork.c Modified: libgpod/trunk/docs/reference/libgpod-sections.txt =================================================================== --- libgpod/trunk/docs/reference/libgpod-sections.txt 2008-07-29 20:12:07 UTC (rev 2071) +++ libgpod/trunk/docs/reference/libgpod-sections.txt 2008-07-29 21:54:46 UTC (rev 2072) @@ -178,20 +178,14 @@ <TITLE>Artwork</TITLE> Itdb_Artwork Itdb_Thumb -ItdbThumbType itdb_artwork_new itdb_artwork_duplicate itdb_artwork_free -itdb_artwork_add_thumbnail -itdb_artwork_add_thumbnail_from_data -itdb_artwork_add_thumbnail_from_pixbuf -itdb_artwork_remove_thumbnail +itdb_artwork_set_thumbnail_from_data +itdb_artwork_set_thumbnail_from_pixbuf itdb_artwork_remove_thumbnails -itdb_artwork_get_thumb_by_type itdb_thumb_duplicate itdb_thumb_free -itdb_thumb_new -itdb_thumb_get_filename </SECTION> <SECTION> Modified: libgpod/trunk/docs/reference/tmpl/artwork.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/artwork.sgml 2008-07-29 20:12:07 UTC (rev 2071) +++ libgpod/trunk/docs/reference/tmpl/artwork.sgml 2008-07-29 21:54:46 UTC (rev 2072) @@ -75,6 +75,31 @@ @artwork: +<!-- ##### FUNCTION itdb_artwork_set_thumbnail_from_data ##### --> +<para> + +</para> + +@artwork: +@image_data: +@image_data_len: +@rotation: +@error: +@Returns: + + +<!-- ##### FUNCTION itdb_artwork_set_thumbnail_from_pixbuf ##### --> +<para> + +</para> + +@artwork: +@pixbuf: +@rotation: +@error: +@Returns: + + <!-- ##### FUNCTION itdb_artwork_remove_thumbnails ##### --> <para> Modified: libgpod/trunk/src/itdb_artwork.c =================================================================== --- libgpod/trunk/src/itdb_artwork.c 2008-07-29 20:12:07 UTC (rev 2071) +++ libgpod/trunk/src/itdb_artwork.c 2008-07-29 21:54:46 UTC (rev 2072) @@ -178,9 +178,8 @@ } /** - * itdb_artwork_add_thumbnail_from_pixbuf + * itdb_artwork_set_thumbnail_from_pixbuf * @artwork: an #Itdb_Thumbnail - * @type: thumbnail size * @pixbuf: #GdkPixbuf to use to create the thumbnail * @rotation: angle by which the image should be rotated * counterclockwise. Valid values are 0, 90, 180 and 270. @@ -238,9 +237,8 @@ } /** - * itdb_artwork_add_thumbnail_from_data + * itdb_artwork_set_thumbnail_from_data * @artwork: an #Itdb_Thumbnail - * @type: thumbnail size * @image_data: data used to create the thumbnail (the raw contents of * an image file) * @image_data_len: length of above data block This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-07-30 15:27:28
|
Revision: 2073 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2073&view=rev Author: tmzullinger Date: 2008-07-30 15:27:34 +0000 (Wed, 30 Jul 2008) Log Message: ----------- Rename unk146 to explicit_flag in Itdb_Track now that it's purpose is known Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/docs/reference/tmpl/track.sgml libgpod/trunk/src/itdb.h libgpod/trunk/src/itdb_itunesdb.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-29 21:54:46 UTC (rev 2072) +++ libgpod/trunk/ChangeLog 2008-07-30 15:27:34 UTC (rev 2073) @@ -1,3 +1,10 @@ +2008-07-30 Todd Zullinger <tmzullinger at users.sourceforge.net> + + * docs/reference/tmpl/track.sgml + src/itdb.h + src/itdb_itunesdb.c: Rename unk146 to explicit_flag in + Itdb_Track now that it's purpose is known + 2008-07-27 Christophe Fergeau <te...@gn...> * src/itdb_sysinfo_extended_parser.c: Modified: libgpod/trunk/docs/reference/tmpl/track.sgml =================================================================== --- libgpod/trunk/docs/reference/tmpl/track.sgml 2008-07-29 21:54:46 UTC (rev 2072) +++ libgpod/trunk/docs/reference/tmpl/track.sgml 2008-07-30 15:27:34 UTC (rev 2073) @@ -91,7 +91,7 @@ @unk132: @time_released: @unk144: -@unk146: +@explicit_flag: @unk148: @unk152: @skipcount: Modified: libgpod/trunk/src/itdb.h =================================================================== --- libgpod/trunk/src/itdb.h 2008-07-29 21:54:46 UTC (rev 2072) +++ libgpod/trunk/src/itdb.h 2008-07-30 15:27:34 UTC (rev 2073) @@ -833,8 +833,9 @@ files are 0x0029, WAV files are 0x0. itdb will attempt to set this value when adding a track. */ - guint16 unk146; /* unknown, but appears to be 1 if played at - least once in iTunes and 0 otherwise. */ + guint16 explicit_flag;/* If this flag is set to 1, the track is shown as + explicit content in iTunes. Otherwise set this flag + to 0.*/ guint32 unk148; /* unknown - used for Apple Store DRM songs (always 0x01010100?), zero otherwise */ guint32 unk152; /* unknown */ Modified: libgpod/trunk/src/itdb_itunesdb.c =================================================================== --- libgpod/trunk/src/itdb_itunesdb.c 2008-07-29 21:54:46 UTC (rev 2072) +++ libgpod/trunk/src/itdb_itunesdb.c 2008-07-30 15:27:34 UTC (rev 2073) @@ -2309,7 +2309,7 @@ track->time_released = device_time_mac_to_time_t (fimp->itdb->device, track->time_released); track->unk144 = get16lint (cts, seek+144); - track->unk146 = get16lint (cts, seek+146); + track->explicit_flag = get16lint (cts, seek+146); track->unk148 = get32lint (cts, seek+148); track->unk152 = get32lint (cts, seek+152); } @@ -3607,7 +3607,7 @@ mac_time = device_time_time_t_to_mac (track->itdb->device, track->time_released); put32lint (cts, mac_time); put16lint (cts, track->unk144); - put16lint (cts, track->unk146); + put16lint (cts, track->explicit_flag); put32lint (cts, track->unk148); put32lint (cts, track->unk152); /* since iTunesDB version 0x0c */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-08-01 00:49:57
|
Revision: 2074 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2074&view=rev Author: teuf Date: 2008-08-01 00:50:05 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Move ITDB_DEVICE_ERROR from itdb_plist.h to itdb_device.h Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_device.h libgpod/trunk/src/itdb_plist.c libgpod/trunk/src/itdb_plist.h Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-07-30 15:27:34 UTC (rev 2073) +++ libgpod/trunk/ChangeLog 2008-08-01 00:50:05 UTC (rev 2074) @@ -1,3 +1,9 @@ +2008-07-31 Christophe Fergeau <te...@gn...> + + * src/itdb_device.h: + * src/itdb_plist.h: move itdb_device_error_quark from itdb_plist.h + to itdb_device.h + 2008-07-30 Todd Zullinger <tmzullinger at users.sourceforge.net> * docs/reference/tmpl/track.sgml Modified: libgpod/trunk/src/itdb_device.h =================================================================== --- libgpod/trunk/src/itdb_device.h 2008-07-30 15:27:34 UTC (rev 2073) +++ libgpod/trunk/src/itdb_device.h 2008-08-01 00:50:05 UTC (rev 2074) @@ -113,6 +113,10 @@ gint associated_format; }; +/* Error domain */ +#define ITDB_DEVICE_ERROR itdb_device_error_quark () +GQuark itdb_device_error_quark (void); + G_GNUC_INTERNAL GList *itdb_device_get_photo_formats (const Itdb_Device *device); G_GNUC_INTERNAL GList *itdb_device_get_cover_art_formats (const Itdb_Device *device); G_GNUC_INTERNAL gint itdb_device_musicdirs_number (Itdb_Device *device); Modified: libgpod/trunk/src/itdb_plist.c =================================================================== --- libgpod/trunk/src/itdb_plist.c 2008-07-30 15:27:34 UTC (rev 2073) +++ libgpod/trunk/src/itdb_plist.c 2008-08-01 00:50:05 UTC (rev 2074) @@ -66,6 +66,10 @@ #define DEBUG(...) #endif +/* Error domain */ +#define ITDB_DEVICE_ERROR itdb_device_error_quark () +extern GQuark itdb_device_error_quark (void); + static GValue *parse_node (xmlNode *a_node, GError **error); static void Modified: libgpod/trunk/src/itdb_plist.h =================================================================== --- libgpod/trunk/src/itdb_plist.h 2008-07-30 15:27:34 UTC (rev 2073) +++ libgpod/trunk/src/itdb_plist.h 2008-08-01 00:50:05 UTC (rev 2074) @@ -37,12 +37,6 @@ ITDB_DEVICE_ERROR_XML_PARSING } ItdbDeviceError; -/* Error domain */ -#define ITDB_DEVICE_ERROR itdb_device_error_quark () -GQuark itdb_device_error_quark (void); - - - G_GNUC_INTERNAL GValue *itdb_plist_parse_from_file (const char *filename, GError **error); G_GNUC_INTERNAL GValue *itdb_plist_parse_from_memory (const char *data, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-08-01 00:55:28
|
Revision: 2075 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2075&view=rev Author: teuf Date: 2008-08-01 00:55:38 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Fix auto-enabling of more warnings when using a svn checkout Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/configure.ac Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-01 00:50:05 UTC (rev 2074) +++ libgpod/trunk/ChangeLog 2008-08-01 00:55:38 UTC (rev 2075) @@ -1,5 +1,11 @@ 2008-07-31 Christophe Fergeau <te...@gn...> + * configure.ac: instead of looking for .svn or {arch}, look for + autogen.sh to decide if we are compiling a version checked out from + svn or a release tarball. + +2008-07-31 Christophe Fergeau <te...@gn...> + * src/itdb_device.h: * src/itdb_plist.h: move itdb_device_error_quark from itdb_plist.h to itdb_device.h Modified: libgpod/trunk/configure.ac =================================================================== --- libgpod/trunk/configure.ac 2008-08-01 00:50:05 UTC (rev 2074) +++ libgpod/trunk/configure.ac 2008-08-01 00:55:38 UTC (rev 2075) @@ -253,7 +253,7 @@ AC_ARG_ENABLE(more-warnings, [ --enable-more-warnings Maximum compiler warnings], set_more_warnings="$enableval",[ -if test -d "$srcdir/{arch}" || test -d "$srcdir/.svn"; then +if test -a "$srcdir/autogen.sh"; then set_more_warnings=yes else set_more_warnings=no This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2008-08-01 01:11:24
|
Revision: 2076 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2076&view=rev Author: teuf Date: 2008-08-01 01:11:33 +0000 (Fri, 01 Aug 2008) Log Message: ----------- s/test -a/test -e Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/configure.ac Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-01 00:55:38 UTC (rev 2075) +++ libgpod/trunk/ChangeLog 2008-08-01 01:11:33 UTC (rev 2076) @@ -1,5 +1,10 @@ 2008-07-31 Christophe Fergeau <te...@gn...> + * configure.ac: s/test -a/test -e/ since this is what I really + meant, thanks tmz + +2008-07-31 Christophe Fergeau <te...@gn...> + * configure.ac: instead of looking for .svn or {arch}, look for autogen.sh to decide if we are compiling a version checked out from svn or a release tarball. Modified: libgpod/trunk/configure.ac =================================================================== --- libgpod/trunk/configure.ac 2008-08-01 00:55:38 UTC (rev 2075) +++ libgpod/trunk/configure.ac 2008-08-01 01:11:33 UTC (rev 2076) @@ -253,7 +253,7 @@ AC_ARG_ENABLE(more-warnings, [ --enable-more-warnings Maximum compiler warnings], set_more_warnings="$enableval",[ -if test -a "$srcdir/autogen.sh"; then +if test -e "$srcdir/autogen.sh"; then set_more_warnings=yes else set_more_warnings=no This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-02 07:11:45
|
Revision: 2077 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2077&view=rev Author: tmzullinger Date: 2008-08-02 07:11:54 +0000 (Sat, 02 Aug 2008) Log Message: ----------- Fix typo in itdb_track_get_thumbnail() doc comment Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_track.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-01 01:11:33 UTC (rev 2076) +++ libgpod/trunk/ChangeLog 2008-08-02 07:11:54 UTC (rev 2077) @@ -1,3 +1,8 @@ +2008-08-02 Todd Zullinger <tmzullinger at users.sourceforge.net> + + * src/itdb_track.c: Fix typo in itdb_track_get_thumbnail() doc + comment + 2008-07-31 Christophe Fergeau <te...@gn...> * configure.ac: s/test -a/test -e/ since this is what I really Modified: libgpod/trunk/src/itdb_track.c =================================================================== --- libgpod/trunk/src/itdb_track.c 2008-08-01 01:11:33 UTC (rev 2076) +++ libgpod/trunk/src/itdb_track.c 2008-08-02 07:11:54 UTC (rev 2077) @@ -630,7 +630,7 @@ } /** - * itdb_track_get_thumbnail! + * itdb_track_get_thumbnail: * @track: an #Itdb_Track * @width: width of the pixbuf to retrieve, -1 for the biggest possible size * (with no scaling) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jc...@us...> - 2008-08-03 02:55:42
|
Revision: 2083 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2083&view=rev Author: jcsjcs Date: 2008-08-03 02:55:51 +0000 (Sun, 03 Aug 2008) Log Message: ----------- 2008-08-03 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/ithumb-writer (ithumb_writer_handle_pixbuf_transform): handle rotation correctly: don't interchange width and height for the thumbnail on the iPod. Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/ithumb-writer.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-02 11:49:35 UTC (rev 2082) +++ libgpod/trunk/ChangeLog 2008-08-03 02:55:51 UTC (rev 2083) @@ -1,3 +1,9 @@ +2008-08-03 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/ithumb-writer (ithumb_writer_handle_pixbuf_transform): + handle rotation correctly: don't interchange width and height + for the thumbnail on the iPod. + 2008-08-02 Todd Zullinger <tmzullinger at users.sourceforge.net> * src/itdb_track.c: Fix typo in itdb_track_get_thumbnail() doc Modified: libgpod/trunk/src/ithumb-writer.c =================================================================== --- libgpod/trunk/src/ithumb-writer.c 2008-08-02 11:49:35 UTC (rev 2082) +++ libgpod/trunk/src/ithumb-writer.c 2008-08-03 02:55:51 UTC (rev 2083) @@ -822,23 +822,11 @@ GdkPixbuf *rotated_pixbuf; GdkPixbuf *scaled_pixbuf; - guint width; - guint height; - rotated_pixbuf = ithumb_writer_handle_rotation (pixbuf, &rotation); - if ((rotation == 0) || (rotation == 180)) - { - width = writer->img_info->width; - height = writer->img_info->height; - } - else - { - width = writer->img_info->height; - height = writer->img_info->width; - } - - scaled_pixbuf = ithumb_writer_scale_and_crop (rotated_pixbuf, width, height, + scaled_pixbuf = ithumb_writer_scale_and_crop (rotated_pixbuf, + writer->img_info->width, + writer->img_info->height, writer->img_info->crop); g_object_unref (rotated_pixbuf); rotated_pixbuf = NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-07 17:00:37
|
Revision: 2093 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2093&view=rev Author: tmzullinger Date: 2008-08-07 17:00:46 +0000 (Thu, 07 Aug 2008) Log Message: ----------- Ignore *.o files in src, tests, and tools directories Property Changed: ---------------- libgpod/trunk/src/ libgpod/trunk/tests/ libgpod/trunk/tools/ Property changes on: libgpod/trunk/src ___________________________________________________________________ Modified: svn:ignore - Makefile Makefile.in cscope.out .deps .libs *.lo *.la + *.la *.lo *.o .deps .libs Makefile Makefile.in cscope.out Property changes on: libgpod/trunk/tests ___________________________________________________________________ Modified: svn:ignore - .deps .libs Makefile Makefile.in cscope.out get-timezone test-checksum test-firewire-id test-init-ipod test-ipod-device test-itdb test-ls test-photos test-sysinfo-extended-parsing test-thumbnails test-write-thumbnails + *.o .deps .libs Makefile Makefile.in cscope.out get-timezone test-checksum test-firewire-id test-init-ipod test-ipod-device test-itdb test-ls test-photos test-sysinfo-extended-parsing test-thumbnails test-write-thumbnails Property changes on: libgpod/trunk/tools ___________________________________________________________________ Modified: svn:ignore - .deps .libs Makefile Makefile.in ipod-read-sysinfo-extended libgpod-callout + *.o .deps .libs Makefile Makefile.in ipod-read-sysinfo-extended libgpod-callout This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-09 15:01:22
|
Revision: 2095 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2095&view=rev Author: tmzullinger Date: 2008-08-09 15:01:31 +0000 (Sat, 09 Aug 2008) Log Message: ----------- Remove uses of deprecated itdb_time_* functions Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/itdb_playlist.c libgpod/trunk/tests/test-ls.c Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-07 17:01:48 UTC (rev 2094) +++ libgpod/trunk/ChangeLog 2008-08-09 15:01:31 UTC (rev 2095) @@ -1,3 +1,8 @@ +2008-08-09 Todd Zullinger <tmzullinger at users.sourceforge.net> + + * src/itdb_playlist.c + tests/test-ls.c: Remove uses of deprecated itdb_time_* functions + 2008-08-03 Jorg Schuler <jcsjcs at users.sourceforge.net> * src/ithumb-writer (ithumb_writer_handle_pixbuf_transform): Modified: libgpod/trunk/src/itdb_playlist.c =================================================================== --- libgpod/trunk/src/itdb_playlist.c 2008-08-07 17:01:48 UTC (rev 2094) +++ libgpod/trunk/src/itdb_playlist.c 2008-08-09 15:01:31 UTC (rev 2095) @@ -340,7 +340,6 @@ guint32 datecomp = 0; Itdb_Playlist *playcomp = NULL; time_t t; - guint64 mactime; g_return_val_if_fail (splr, FALSE); g_return_val_if_fail (track, FALSE); @@ -567,13 +566,11 @@ case ITDB_SPLACTION_IS_IN_THE_LAST: time (&t); t += (splr->fromdate * splr->fromunits); - mactime = itdb_time_host_to_mac (t); - return (datecomp > mactime); + return (datecomp > t); case ITDB_SPLACTION_IS_NOT_IN_THE_LAST: time (&t); t += (splr->fromdate * splr->fromunits); - mactime = itdb_time_host_to_mac (t); - return (datecomp <= mactime); + return (datecomp <= t); case ITDB_SPLACTION_IS_IN_THE_RANGE: return ((datecomp <= splr->fromvalue && datecomp >= splr->tovalue) || @@ -1237,7 +1234,7 @@ pl->name = g_strdup (title); pl->sortorder = ITDB_PSO_MANUAL; - pl->timestamp = itdb_time_get_mac_time (); + pl->timestamp = time (NULL); pl->is_spl = spl; if (spl) @@ -1319,7 +1316,7 @@ pl->id = id; } if (pl->sortorder == 0) pl->sortorder = ITDB_PSO_MANUAL; - if (pl->timestamp == 0) pl->timestamp = itdb_time_get_mac_time (); + if (pl->timestamp == 0) pl->timestamp = time (NULL); /* pos == -1 appends at the end of the list */ itdb->playlists = g_list_insert (itdb->playlists, pl, pos); Modified: libgpod/trunk/tests/test-ls.c =================================================================== --- libgpod/trunk/tests/test-ls.c 2008-08-07 17:01:48 UTC (rev 2094) +++ libgpod/trunk/tests/test-ls.c 2008-08-09 15:01:31 UTC (rev 2095) @@ -48,7 +48,7 @@ if (track->recent_playcount != 0) { char date[30]; - time_t track_time = itdb_time_mac_to_host (track->time_played); + time_t track_time = track->time_played; g_print ("%s - %s - %s:\n", track->artist, track->album, track->title); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pha...@us...> - 2008-08-09 17:00:26
|
Revision: 2096 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2096&view=rev Author: phantom_sf Date: 2008-08-09 17:00:34 +0000 (Sat, 09 Aug 2008) Log Message: ----------- 2008-08-09 Paul Richardson <phantom_sf at users.sourceforge.net> * Added eclipse project related files to svn:ignore * src/db-artwork-parser.c src/itdb.h src/itdb_photoalbum.c: Added to Itdb_PhotoAlbum, a reference to its parent Photo DB. When albums are constructed upon loading of the Photo DB, the reference is added as part of initialisation. Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/src/db-artwork-parser.c libgpod/trunk/src/itdb.h libgpod/trunk/src/itdb_photoalbum.c Property Changed: ---------------- libgpod/trunk/ Property changes on: libgpod/trunk ___________________________________________________________________ Modified: svn:ignore - Makefile Makefile.in aclocal.m4 autom4te.cache compile config.guess config.h config.h.in config.log config.status config.sub configure depcomp install-sh intltool-extract intltool-extract.in intltool-merge intltool-merge.in intltool-update intltool-update.in libgpod-1.0.pc libtool ltmain.sh missing mkinstalldirs stamp-h1 TODO_local cscope.out gtk-doc.make libgpod-*.tar.gz py-compile + Makefile Makefile.in aclocal.m4 autom4te.cache compile config.guess config.h config.h.in config.log config.status config.sub configure depcomp install-sh intltool-extract intltool-extract.in intltool-merge intltool-merge.in intltool-update intltool-update.in libgpod-1.0.pc libtool ltmain.sh missing mkinstalldirs stamp-h1 TODO_local cscope.out gtk-doc.make libgpod-*.tar.gz py-compile .project .cproject .settings Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-09 15:01:31 UTC (rev 2095) +++ libgpod/trunk/ChangeLog 2008-08-09 17:00:34 UTC (rev 2096) @@ -1,3 +1,13 @@ +2008-08-09 Paul Richardson <phantom_sf at users.sourceforge.net> + + * Added eclipse project related files to svn:ignore + * src/db-artwork-parser.c + src/itdb.h + src/itdb_photoalbum.c: + Added to Itdb_PhotoAlbum, a reference to its parent Photo DB. + When albums are constructed upon loading of the Photo DB, the + reference is added as part of initialisation. + 2008-08-09 Todd Zullinger <tmzullinger at users.sourceforge.net> * src/itdb_playlist.c Modified: libgpod/trunk/src/db-artwork-parser.c =================================================================== --- libgpod/trunk/src/db-artwork-parser.c 2008-08-09 15:01:31 UTC (rev 2095) +++ libgpod/trunk/src/db-artwork-parser.c 2008-08-09 17:00:34 UTC (rev 2096) @@ -392,6 +392,7 @@ g_free (mhia_ctx); photodb = db_get_photodb (ctx->db); g_return_val_if_fail (photodb, -1); + album->photodb = photodb; photodb->photoalbums = g_list_append (photodb->photoalbums, album); return 0; Modified: libgpod/trunk/src/itdb.h =================================================================== --- libgpod/trunk/src/itdb.h 2008-08-09 15:01:31 UTC (rev 2095) +++ libgpod/trunk/src/itdb.h 2008-08-09 17:00:34 UTC (rev 2096) @@ -549,6 +549,7 @@ struct _Itdb_PhotoAlbum { + Itdb_PhotoDB *photodb; /* database to which this album belongs */ gchar *name; /* name of photoalbum in UTF8 */ GList *members; /* photos in album (Itdb_Artwork *) */ guint8 album_type; /* 0x01 for master (Photo Library), Modified: libgpod/trunk/src/itdb_photoalbum.c =================================================================== --- libgpod/trunk/src/itdb_photoalbum.c 2008-08-09 15:01:31 UTC (rev 2095) +++ libgpod/trunk/src/itdb_photoalbum.c 2008-08-09 17:00:34 UTC (rev 2096) @@ -335,6 +335,7 @@ { if (album) { + album->photodb = NULL; g_free (album->name); g_list_free (album->members); @@ -735,6 +736,7 @@ album = g_new0 (Itdb_PhotoAlbum, 1); album->album_type = 2; /* normal album, set to 1 for Photo Library */ + album->photodb = db; album->name = g_strdup(albumname); db->photoalbums = g_list_insert (db->photoalbums, album, pos); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-20 17:37:28
|
Revision: 2108 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2108&view=rev Author: tmzullinger Date: 2008-08-20 17:37:32 +0000 (Wed, 20 Aug 2008) Log Message: ----------- Update python bindings to work with the new thumbnail API. This removes sw_get_artwork_thumbnails() and the Thumbnail class from the python bindings. The get_pixbuf() function is now in the Photo class. Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/bindings/python/examples/save_photos.py libgpod/trunk/bindings/python/gpod.i.in libgpod/trunk/bindings/python/ipod.py libgpod/trunk/bindings/python/tests/tests.py Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-20 17:32:10 UTC (rev 2107) +++ libgpod/trunk/ChangeLog 2008-08-20 17:37:32 UTC (rev 2108) @@ -1,3 +1,15 @@ +2008-08-09 Todd Zullinger <tmzullinger at users.sourceforge.net> + + * bindings/python/examples/save_photos.py + bindings/python/gpod.i.in + bindings/python/ipod.py + bindings/python/tests/tests.py: + Update python bindings to work with the new thumbnail API. + + This removes sw_get_artwork_thumbnails() and the Thumbnail + class from the python bindings. The get_pixbuf() function + is now in the Photo class. + 2008-08-09 Paul Richardson <phantom_sf at users.sourceforge.net> * Added eclipse project related files to svn:ignore Modified: libgpod/trunk/bindings/python/examples/save_photos.py =================================================================== --- libgpod/trunk/bindings/python/examples/save_photos.py 2008-08-20 17:32:10 UTC (rev 2107) +++ libgpod/trunk/bindings/python/examples/save_photos.py 2008-08-20 17:37:32 UTC (rev 2108) @@ -24,7 +24,7 @@ import gpod -if not hasattr(gpod.Thumbnail, 'get_pixbuf'): +if not hasattr(gpod.Photo, 'get_pixbuf'): print 'Sorry, gpod was built without pixbuf support.' raise SystemExit @@ -35,9 +35,7 @@ print " ", album for photo in album: print " ", photo - for thumbnail, n in zip(photo.thumbnails, - range(0,len(photo.thumbnails))): - print " ", thumbnail - thumbnail.get_pixbuf().save("/tmp/%d-%d.png" % (photo['id'],n),"png") + for w,h,s in ((0,0,'small'), (-1,-1,'large')): + photo.get_pixbuf(w,h).save("/tmp/%d-%s.png" % (photo['id'],s),"png") photodb.close() Modified: libgpod/trunk/bindings/python/gpod.i.in =================================================================== --- libgpod/trunk/bindings/python/gpod.i.in 2008-08-20 17:32:10 UTC (rev 2107) +++ libgpod/trunk/bindings/python/gpod.i.in 2008-08-20 17:37:32 UTC (rev 2108) @@ -82,7 +82,6 @@ PyObject* sw_get_photoalbum(GList *list, gint index); PyObject* sw_get_photos(Itdb_PhotoDB *db); PyObject* sw_get_photo(GList *list, gint index); -PyObject* sw_get_artwork_thumbnails(Itdb_Artwork *artwork); PyObject* sw_get_photoalbum_members(Itdb_PhotoAlbum *album); PyObject* sw_ipod_device_to_dict(Itdb_Device *device); void sw__track_extra_destroy (PyObject *data); @@ -208,18 +207,6 @@ return list; } - PyObject* sw_get_artwork_thumbnails(Itdb_Artwork *artwork) { - PyObject *list; - gint i; - GList *l; - list = PyList_New(g_list_length(artwork->thumbnails)); - for (l = artwork->thumbnails, i = 0; l; l = l->next, ++i) { - PyList_SET_ITEM(list, i, SWIG_NewPointerObj((void*)(l->data), SWIGTYPE_p__Itdb_Thumb, 0)); - } - return list; - } - - PyObject* sw_get_photoalbum(GList *list, gint index) { GList *position; if ( (index >= g_list_length(list)) || index < 0 ) { @@ -489,7 +476,9 @@ #ifdef HAVE_PYGOBJECT %typemap(out) gpointer itdb_artwork_get_pixbuf { $result = pygobject_new((GObject *)$1); - g_object_unref($1); + if ($1) { + g_object_unref($1); + } } %typemap(in) gpointer pixbuf { @@ -515,7 +504,6 @@ PyObject* sw_get_photos(Itdb_PhotoDB *db); PyObject* sw_get_photo(GList *list, gint index); PyObject* sw_get_photoalbum_members(Itdb_PhotoAlbum *album); -PyObject* sw_get_artwork_thumbnails(Itdb_Artwork *artwork); PyObject* sw_ipod_device_to_dict(Itdb_Device *device); %include "@top_srcdir@/src/itdb.h" Modified: libgpod/trunk/bindings/python/ipod.py =================================================================== --- libgpod/trunk/bindings/python/ipod.py 2008-08-20 17:32:10 UTC (rev 2107) +++ libgpod/trunk/bindings/python/ipod.py 2008-08-20 17:37:32 UTC (rev 2108) @@ -964,69 +964,18 @@ else: raise KeyError('No such key: %s' % item) - def get_thumbnails(self): - return [Thumbnail(proxied_thumbnail=t, - ownerobject=self) for t in gpod.sw_get_artwork_thumbnails( - self._photo)] + if pixbuf_support: + def get_pixbuf(self, width=-1, height=-1): + """Get a pixbuf from a Photo. - thumbnails = property(get_thumbnails) + width: the width of the pixbuf to retrieve, -1 for the biggest + possible size and 0 for the smallest possible size (with no scaling) -class Thumbnail: - """A thumbnail in an Photo.""" - - _proxied_attributes = [k for k in gpod._Itdb_Thumb.__dict__.keys() - if not (k.startswith("_") or k.startswith("reserved"))] - - def __init__(self, proxied_thumbnail=None, ownerobject=None): - """Create a thumbnail object.""" - - if not proxied_thumbnail: - raise NotImplemented("Can't create new Thumbnails from scratch, create Photos instead") - - self._thumbnail = proxied_thumbnail - self.__ownerobject = ownerobject - - def __str__(self): - return self.__repr__() - - def __repr__(self): - return "<Thumbnail Filename:%s Size:%d Width:%d Height:%d>" % ( - repr(self['filename']), - self['size'], - self['width'], - self['height']) - - def keys(self): - return list(self._proxied_attributes) - - def items(self): - return [self[k] for k in self._proxied_attributes] - - def pairs(self): - return [(k, self[k]) for k in self._proxied_attributes] - - def __getitem__(self, item): - if item in self._proxied_attributes: - return getattr(self._thumbnail, item) - else: - raise KeyError('No such key: %s' % item) - - def __setitem__(self, item, value): - if type(value) == types.UnicodeType: - value = value.encode('UTF-8','replace') - if item in self._proxied_attributes: - return setattr(self._thumbnail, item, value) - else: - raise KeyError('No such key: %s' % item) - - if pixbuf_support: - def get_pixbuf(self): - # this deals with coverart and photo albums - if hasattr(self.__ownerobject._database,"_itdb"): - return gpod.itdb_artwork_get_pixbuf( - self.__ownerobject._database._itdb.device, - self._thumbnail) - else: - return gpod.itdb_artwork_get_pixbuf( - self.__ownerobject._database.device, - self._thumbnail) + height: the height of the pixbuf to retrieve, -1 for the biggest + possible size and 0 for the smallest possible size (with no scaling) + """ + device = self._database.device + if hasattr(self._database,"_itdb"): + device = self._database._itdb.device + return gpod.itdb_artwork_get_pixbuf(device, self._photo, + width, height) Modified: libgpod/trunk/bindings/python/tests/tests.py =================================================================== --- libgpod/trunk/bindings/python/tests/tests.py 2008-08-20 17:32:10 UTC (rev 2107) +++ libgpod/trunk/bindings/python/tests/tests.py 2008-08-20 17:37:32 UTC (rev 2108) @@ -182,10 +182,5 @@ for album in self.db.PhotoAlbums: [photo for photo in album] - def testEnumeratePhotosThumbs(self): - for album in self.db.PhotoAlbums: - for photo in album: - [thumb for thumb in photo.thumbnails] - if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-23 18:01:23
|
Revision: 2109 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2109&view=rev Author: tmzullinger Date: 2008-08-23 18:01:32 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Python: Add a quiet parameter to Database.remove() and use it in tests Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/bindings/python/ipod.py libgpod/trunk/bindings/python/tests/tests.py Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-20 17:37:32 UTC (rev 2108) +++ libgpod/trunk/ChangeLog 2008-08-23 18:01:32 UTC (rev 2109) @@ -1,5 +1,12 @@ -2008-08-09 Todd Zullinger <tmzullinger at users.sourceforge.net> +2008-08-23 Todd Zullinger <tmzullinger at users.sourceforge.net> + * bindings/python/ipod.py + bindings/python/tests/tests.py: + Add a quiet parameter to Database.remove() and use it in + tests + +2008-08-20 Todd Zullinger <tmzullinger at users.sourceforge.net> + * bindings/python/examples/save_photos.py bindings/python/gpod.i.in bindings/python/ipod.py Modified: libgpod/trunk/bindings/python/ipod.py =================================================================== --- libgpod/trunk/bindings/python/ipod.py 2008-08-20 17:37:32 UTC (rev 2108) +++ libgpod/trunk/bindings/python/ipod.py 2008-08-23 18:01:32 UTC (rev 2109) @@ -155,7 +155,7 @@ gpod.itdb_track_add(self._itdb, track._track, pos) track.__database = self # so the db doesn't get gc'd - def remove(self, item, harddisk=False, ipod=True): + def remove(self, item, harddisk=False, ipod=True, quiet=False): """Remove a playlist or track from a database. item is either a playlist or track object. @@ -164,6 +164,8 @@ If ipod is True the item will be removed from the iPod. + If quiet is True no message will be printed for removed tracks + """ if isinstance(item, Playlist): @@ -189,7 +191,8 @@ filename = item.ipod_filename() if filename and os.path.exists(filename): os.unlink(filename) - print "unlinked %s" % filename + if not quiet: + print "unlinked %s" % filename gpod.itdb_track_unlink(item._track) else: raise DatabaseException("Unable to remove a %s from database" % type(item)) Modified: libgpod/trunk/bindings/python/tests/tests.py =================================================================== --- libgpod/trunk/bindings/python/tests/tests.py 2008-08-20 17:37:32 UTC (rev 2108) +++ libgpod/trunk/bindings/python/tests/tests.py 2008-08-23 18:01:32 UTC (rev 2109) @@ -62,7 +62,7 @@ track = self.db[0] track_file = track.ipod_filename() self.assertEqual(len(self.db),n) - self.db.remove(track, ipod=True) + self.db.remove(track, ipod=True, quiet=True) self.failIf(os.path.exists(track_file)) def testDatestampSetting(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-23 18:02:33
|
Revision: 2110 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2110&view=rev Author: tmzullinger Date: 2008-08-23 18:02:42 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Python: Be more consistent with other container objects and classes This enables testing whether a key exists in an object (e.g. "'title' in track") as well as iterating over a Track or Photo object's keys, values, or items. The items() and pairs() methods were renamed to values() and items(), respectively, in the Track and Photo classes. Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/bindings/python/ipod.py libgpod/trunk/bindings/python/tests/tests.py Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-23 18:01:32 UTC (rev 2109) +++ libgpod/trunk/ChangeLog 2008-08-23 18:02:42 UTC (rev 2110) @@ -5,6 +5,16 @@ Add a quiet parameter to Database.remove() and use it in tests + * bindings/python/ipod.py: + Be more consistent with other python container objects and + classes + + This enables testing whether a key exists in an object (e.g. + "'title' in track") as well as iterating over a Track or + Photo object's keys, values, or items. The items() and + pairs() methods were renamed to values() and items(), + respectively, in the Track and Photo classes. + 2008-08-20 Todd Zullinger <tmzullinger at users.sourceforge.net> * bindings/python/examples/save_photos.py Modified: libgpod/trunk/bindings/python/ipod.py =================================================================== --- libgpod/trunk/bindings/python/ipod.py 2008-08-23 18:01:32 UTC (rev 2109) +++ libgpod/trunk/bindings/python/ipod.py 2008-08-23 18:02:42 UTC (rev 2110) @@ -454,13 +454,38 @@ repr(self['title']), repr(self['album'])) + def __iter__(self): + for k in self.keys(): + yield k + + def has_key(self, key): + try: + value = self[key] + except KeyError: + return False + return True + + def __contains__(self, key): + return self.has_key(key) + + def iteritems(self): + for k in self: + yield (k, self[k]) + + def iterkeys(self): + return self.__iter__() + + def itervalues(self): + for _, v in self.iteritems(): + yield v + def keys(self): return list(self._proxied_attributes) - def items(self): + def values(self): return [self[k] for k in self._proxied_attributes] - def pairs(self): + def items(self): return [(k, self[k]) for k in self._proxied_attributes] def __getitem__(self, item): @@ -937,13 +962,38 @@ self['digitized_date'].strftime("%c"), repr(self['artwork_size'])) + def __iter__(self): + for k in self.keys(): + yield k + + def has_key(self, key): + try: + value = self[key] + except KeyError: + return False + return True + + def __contains__(self, key): + return self.has_key(key) + + def iteritems(self): + for k in self: + yield (k, self[k]) + + def iterkeys(self): + return self.__iter__() + + def itervalues(self): + for _, v in self.iteritems(): + yield v + def keys(self): return list(self._proxied_attributes) - def items(self): + def values(self): return [self[k] for k in self._proxied_attributes] - def pairs(self): + def items(self): return [(k, self[k]) for k in self._proxied_attributes] def __getitem__(self, item): Modified: libgpod/trunk/bindings/python/tests/tests.py =================================================================== --- libgpod/trunk/bindings/python/tests/tests.py 2008-08-23 18:01:32 UTC (rev 2109) +++ libgpod/trunk/bindings/python/tests/tests.py 2008-08-23 18:02:42 UTC (rev 2110) @@ -79,7 +79,12 @@ t['time_added'] = time.mktime(date.timetuple()) self.assertEqual(date.year, t['time_added'].year) self.assertEqual(date.second, t['time_added'].second) - + + def testTrackContainerMethods(self): + self.testAddTrack() + track = self.db[0] + self.failUnless('title' in track) + def testVersion(self): self.assertEqual(type(gpod.version_info), types.TupleType) @@ -182,5 +187,10 @@ for album in self.db.PhotoAlbums: [photo for photo in album] + def testPhotoContainerMethods(self): + self.testAddPhoto() + photo = self.db[0] + self.failUnless('id' in photo) + if __name__ == '__main__': unittest.main() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-23 18:03:41
|
Revision: 2111 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2111&view=rev Author: tmzullinger Date: 2008-08-23 18:03:52 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Python: Whitespace cleanup of tests.py Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/bindings/python/tests/tests.py Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-23 18:02:42 UTC (rev 2110) +++ libgpod/trunk/ChangeLog 2008-08-23 18:03:52 UTC (rev 2111) @@ -15,6 +15,9 @@ pairs() methods were renamed to values() and items(), respectively, in the Track and Photo classes. + * bindings/python/tests/tests.py: + Whitespace cleanup + 2008-08-20 Todd Zullinger <tmzullinger at users.sourceforge.net> * bindings/python/examples/save_photos.py Modified: libgpod/trunk/bindings/python/tests/tests.py =================================================================== --- libgpod/trunk/bindings/python/tests/tests.py 2008-08-23 18:02:42 UTC (rev 2110) +++ libgpod/trunk/bindings/python/tests/tests.py 2008-08-23 18:03:52 UTC (rev 2111) @@ -18,7 +18,7 @@ os.mkdir(music_dir) for i in range(0,20): os.mkdir(os.path.join(music_dir,"f%02d" % i)) - self.db = gpod.Database(self.mp) + self.db = gpod.Database(self.mp) def tearDown(self): shutil.rmtree(self.mp) @@ -38,13 +38,13 @@ trackname = os.path.join(self.mp, 'iPod_Control', 'tiny.mp3') - + pl = self.db.new_Playlist('my title') self.assertEqual(len(pl),0) t = self.db.new_Track(filename=trackname) pl.add(t) self.assertEqual(len(pl),1) - + def testAddTrack(self): trackname = os.path.join(self.mp, 'iPod_Control', @@ -86,7 +86,7 @@ self.failUnless('title' in track) def testVersion(self): - self.assertEqual(type(gpod.version_info), + self.assertEqual(type(gpod.version_info), types.TupleType) class TestPhotoDatabase(unittest.TestCase): @@ -139,7 +139,7 @@ def testEnumeratePhotoAlbums(self): [photo for photo in self.db.PhotoAlbums] - + def testAddPhoto(self): photoname = os.path.join(self.mp, 'iPod_Control', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tmz...@us...> - 2008-08-23 18:04:22
|
Revision: 2112 http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2112&view=rev Author: tmzullinger Date: 2008-08-23 18:04:30 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Python: Set the mediatype field for Track objects Modified Paths: -------------- libgpod/trunk/ChangeLog libgpod/trunk/bindings/python/ipod.py Modified: libgpod/trunk/ChangeLog =================================================================== --- libgpod/trunk/ChangeLog 2008-08-23 18:03:52 UTC (rev 2111) +++ libgpod/trunk/ChangeLog 2008-08-23 18:04:30 UTC (rev 2112) @@ -18,6 +18,9 @@ * bindings/python/tests/tests.py: Whitespace cleanup + * bindings/python/ipod.py: + Set the mediatype field for Track objects + 2008-08-20 Todd Zullinger <tmzullinger at users.sourceforge.net> * bindings/python/examples/save_photos.py Modified: libgpod/trunk/bindings/python/ipod.py =================================================================== --- libgpod/trunk/bindings/python/ipod.py 2008-08-23 18:03:52 UTC (rev 2111) +++ libgpod/trunk/bindings/python/ipod.py 2008-08-23 18:04:30 UTC (rev 2112) @@ -297,13 +297,18 @@ k.startswith("reserved") or k == "chapterdata")] - def __init__(self, filename=None, + def __init__(self, filename=None, mediatype=gpod.ITDB_MEDIATYPE_AUDIO, proxied_track=None, podcast=False, ownerdb=None): """Create a Track object. If from_file or filename is set, the file specified will be used to create the track. + The mediatype parameter sets the mediatype for the track. It + defaults to audio, unless 'podcast' is True, in which case it + is set to podcast. See gpod.ITDB_MEDIATYPE_* for other valid + mediatypes. + If proxied_track is set, it is expected to be an Itdb_Track object. @@ -357,6 +362,8 @@ else: self._track = gpod.itdb_track_new() self.set_podcast(podcast) + if not 'mediatype' in self: + self['mediatype'] = mediatype def _set_userdata_utf8(self, key, value): self['userdata']['%s_locale' % key] = value @@ -440,6 +447,7 @@ self['skip_when_shuffling'] = 0x01 self['remember_playback_position'] = 0x01 self['flag4'] = 0x01 # Show Title/Album on the 'Now Playing' page + self['mediatype'] = gpod.ITDB_MEDIATYPE_PODCAST else: self['skip_when_shuffling'] = 0x00 self['remember_playback_position'] = 0x00 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |