summaryrefslogtreecommitdiffstats
path: root/src/itdb_track.c
diff options
context:
space:
mode:
authorJorg Schuler <jcsjcs@users.sourceforge.net>2006-11-23 15:02:58 +0000
committerJorg Schuler <jcsjcs@users.sourceforge.net>2006-11-23 15:02:58 +0000
commit58934f71261254a236a1f736e360001d3912624e (patch)
treea44dc93a06653376012cf0dd5c30028473f84598 /src/itdb_track.c
parent7044c632719e31d7e7a644d1ab7c26989bcb7357 (diff)
downloadlibgpod-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.c22
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);
}