diff options
| author | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2006-11-23 15:02:58 +0000 |
|---|---|---|
| committer | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2006-11-23 15:02:58 +0000 |
| commit | 58934f71261254a236a1f736e360001d3912624e (patch) | |
| tree | a44dc93a06653376012cf0dd5c30028473f84598 /src/itdb_track.c | |
| parent | 7044c632719e31d7e7a644d1ab7c26989bcb7357 (diff) | |
| download | libgpod-58934f71261254a236a1f736e360001d3912624e.tar.gz libgpod-58934f71261254a236a1f736e360001d3912624e.tar.xz libgpod-58934f71261254a236a1f736e360001d3912624e.zip | |
* When adding photos to the iPod the user may or may not want to
rotate the picture shown on the iPod screen, for example
deending on EXIF rotation value. This can now be achieved by
passing a new parameter 'rotation' to itdb_photodb_add_photo()
or itdb_photodb_add_photo_from_data(). (Valid values: 0, 90, 180,
270, rotation is counter-clockwise). These two functions now
also accept a GError pointer. As a consequence Itdb_Thumb had to
be extended with a field for the rotation value and
itdb_artwork_add_thumbnail have been extended to accept
@rotation and @error as well.
The actual rotation is carried out in
ithumb-writer.c/ithumb_writer_write_thumbnail() using
gdk_pixbuf_rotate_simple() and require gdk-pixbuf V2.6 or
higher.
In contrast, itdb_track_set_thumbnails() and
itdb_track_set_thumbnails_from_data have been left unchanged,
even though they could be extended to accept @rotation and
@error easily. Please let me know if this is wanted.
* configure.ac
src/itdb.h
src/itdb_artwork.c
src/itdb_photoalbum.c
src/itdb_track.c
src/ithumb-writer.c: implemented changes outlined above.
* tests/test-photos.c: added @rotation and @error to the
itdb_photodb_add_photo() call.
git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1338 f01d2545-417e-4e96-918e-98f8d0dbbcb6
Diffstat (limited to 'src/itdb_track.c')
| -rw-r--r-- | src/itdb_track.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/itdb_track.c b/src/itdb_track.c index fc66f75..3b8b9c0 100644 --- a/src/itdb_track.c +++ b/src/itdb_track.c @@ -1,4 +1,4 @@ -/* Time-stamp: <2006-11-07 20:54:45 jcs> +/* Time-stamp: <2006-11-23 23:32:16 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -370,7 +370,9 @@ Itdb_Track *itdb_track_duplicate (Itdb_Track *tr) static gboolean itdb_track_set_thumbnails_internal (Itdb_Track *track, const gchar *filename, const guchar *image_data, - gsize image_data_len) + gsize image_data_len, + gint rotation, + GError **error) { gboolean result = FALSE; @@ -382,23 +384,25 @@ static gboolean itdb_track_set_thumbnails_internal (Itdb_Track *track, { result = itdb_artwork_add_thumbnail (track->artwork, ITDB_THUMB_COVER_SMALL, - filename); + filename, rotation, error); if (result == TRUE) result = itdb_artwork_add_thumbnail (track->artwork, ITDB_THUMB_COVER_LARGE, - filename); + filename, rotation, error); } if (image_data) { result = itdb_artwork_add_thumbnail_from_data (track->artwork, ITDB_THUMB_COVER_SMALL, image_data, - image_data_len); + image_data_len, + rotation, error); if (result == TRUE) result = itdb_artwork_add_thumbnail_from_data (track->artwork, ITDB_THUMB_COVER_LARGE, image_data, - image_data_len); + image_data_len, + rotation, error); } if (result == TRUE) @@ -443,7 +447,8 @@ gboolean itdb_track_set_thumbnails (Itdb_Track *track, g_return_val_if_fail (track, FALSE); g_return_val_if_fail (filename, FALSE); - return itdb_track_set_thumbnails_internal (track, filename, NULL, 0); + return itdb_track_set_thumbnails_internal (track, filename, NULL, 0, + 0, NULL); } @@ -471,7 +476,8 @@ gboolean itdb_track_set_thumbnails_from_data (Itdb_Track *track, g_return_val_if_fail (image_data, FALSE); return itdb_track_set_thumbnails_internal (track, NULL, - image_data, image_data_len); + image_data, image_data_len, + 0, NULL); } |
