Update of /cvsroot/gtkpod/gtkpod/src
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv4269/src

Modified Files:
        details.c display.h display_itdb.c file.c misc.c misc.h 
        misc_conversion.c misc_track.c 
Log Message:
        * gtkpod.glade
          src/details.c
          src/display.h
          src/display_itdb.c
          src/file.c
          src/misc.c
          src/misc.h
          src/misc_conversion.c
          src/misc_track.c: Mario Rossi's patch to display and select
          TV-related data fields and the media type of a given track.



Index: details.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/details.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- details.c   26 Nov 2006 14:54:27 -0000      1.17
+++ details.c   16 Jan 2007 14:08:54 -0000      1.18
@@ -172,6 +172,22 @@
 }
 
 
+static void details_combobox_changed (GtkComboBox *combobox,
+                                        Detail *detail)
+{
+    T_item item;
+
+    g_return_if_fail (combobox);
+
+    item = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (combobox),
+                                              "details_item"));
+    
+    g_return_if_fail ((item > 0) && (item < T_ITEM_NUM));
+
+    details_get_item (detail, item, FALSE);
+}
+
+
 static void details_writethrough_toggled (GtkCheckButton *button,
                                          Detail *detail)
 {
@@ -617,6 +633,11 @@
     case T_TIME_PLAYED:
     case T_TIME_MODIFIED:
     case T_TIME_RELEASED:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
        buf = g_strdup_printf ("details_entry_%d", item);
        w = gtkpod_xml_get_widget (detail->xml, buf);
        g_signal_connect (w, "activate",
@@ -647,6 +668,13 @@
                          G_CALLBACK (details_text_changed),
                          detail);
        break;
+    case T_MEDIA_TYPE:
+       buf = g_strdup_printf ("details_combobox_%d", item);
+       w = gtkpod_xml_get_widget (detail->xml, buf);
+       g_signal_connect (w, "changed",
+                         G_CALLBACK (details_combobox_changed),
+                         detail);
+       break;
     case T_ALL:
     case T_ITEM_NUM:
        /* cannot happen because of assertion above */
@@ -668,7 +696,7 @@
     GtkTextBuffer *tb;
     GtkWidget *w = NULL;
     gchar *text;
-    gchar *entry, *checkbutton, *textview;
+    gchar *entry, *checkbutton, *textview, *combobox;
 
     g_return_if_fail (detail);
     g_return_if_fail ((item > 0) && (item < T_ITEM_NUM));
@@ -676,6 +704,7 @@
     entry = g_strdup_printf ("details_entry_%d", item);
     checkbutton = g_strdup_printf ("details_checkbutton_%d", item);
     textview = g_strdup_printf ("details_textview_%d", item);
+    combobox = g_strdup_printf ("details_combobox_%d", item);
 
     if (track != NULL)
     {
@@ -728,6 +757,11 @@
     case T_TIME_PLAYED:
     case T_TIME_MODIFIED:
     case T_TIME_RELEASED:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
        w = gtkpod_xml_get_widget (detail->xml, entry);
        g_signal_handlers_block_by_func (w, details_text_changed, detail);
        gtk_entry_set_text (GTK_ENTRY (w), text);
@@ -799,6 +833,18 @@
                                              FALSE);
        }
        break;
+    case T_MEDIA_TYPE:
+       if ((w = gtkpod_xml_get_widget (detail->xml, combobox)))
+       {
+         if (track)
+           {
+             gint gui = dbToGUI(track->mediatype);
+             gtk_combo_box_set_active (GTK_COMBO_BOX (w), gui);
+           }
+           else
+             gtk_combo_box_set_active (GTK_COMBO_BOX (w), 0);
+       }
+       break;
     case T_ALL:
     case T_ITEM_NUM:
        /* cannot happen because of assertion above */
@@ -821,7 +867,7 @@
                              gboolean assumechanged)
 {
     GtkWidget *w = NULL;
-    gchar *entry, *checkbutton, *textview;
+    gchar *entry, *checkbutton, *textview, *combobox;
     gboolean changed = FALSE;
     ExtraTrackData *etr;
     Track *track;
@@ -837,6 +883,7 @@
     entry = g_strdup_printf ("details_entry_%d", item);
     checkbutton = g_strdup_printf ("details_checkbutton_%d", item);
     textview = g_strdup_printf ("details_textview_%d", item);
+    combobox = g_strdup_printf ("details_combobox_%d", item);
 
     switch (item)
     {
@@ -868,6 +915,11 @@
     case T_STARTTIME:
     case T_STOPTIME:
     case T_SOUNDCHECK:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
        if ((w = gtkpod_xml_get_widget (detail->xml, entry)))
        {
            const gchar *text;
@@ -983,6 +1035,20 @@
            }
        }
        break;
+    case T_MEDIA_TYPE:
+       if ((w = gtkpod_xml_get_widget (detail->xml, combobox)))
+       {
+           gint active;
+           active = gtk_combo_box_get_active (GTK_COMBO_BOX (w));
+           guint32 mediatype_db = guiToDB(active);
+
+           if (track->mediatype != mediatype_db)
+           {
+               track->mediatype = mediatype_db;
+               changed = TRUE;
+           }
+       }
+       break;
     case T_TRANSFERRED:
     case T_PC_PATH:
     case T_IPOD_PATH:

Index: display.h
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display.h,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -d -r1.117 -r1.118
--- display.h   21 Oct 2006 10:21:53 -0000      1.117
+++ display.h   16 Jan 2007 14:08:55 -0000      1.118
@@ -242,6 +242,12 @@
     T_REMEMBER_PLAYBACK_POSITION,
     T_SKIP_WHEN_SHUFFLING,
     T_THUMB_PATH,   /* 40 */
+    T_MEDIA_TYPE,
+    T_TV_SHOW,
+    T_TV_EPISODE,
+    T_TV_NETWORK,
+    T_SEASON_NR,    /* 45 */
+    T_EPISODE_NR,
     T_ITEM_NUM,
 } T_item;
 

Index: display_itdb.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display_itdb.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- display_itdb.c      22 Nov 2006 15:48:19 -0000      1.60
+++ display_itdb.c      16 Jan 2007 14:08:55 -0000      1.61
@@ -789,6 +789,9 @@
     if (!track->podcastrss)      track->podcastrss = g_strdup ("");
     if (!track->subtitle)        track->subtitle = g_strdup ("");
     if (!track->ipod_path)       track->ipod_path = g_strdup ("");
+    if (!track->tvshow)          track->tvshow = g_strdup("");
+    if (!track->tvepisode)       track->tvepisode = g_strdup("");
+    if (!track->tvnetwork)       track->tvnetwork = g_strdup("");
     if (!etr->pc_path_utf8)      etr->pc_path_utf8 = g_strdup ("");
     if (!etr->pc_path_locale)    etr->pc_path_locale = g_strdup ("");
     if (!etr->thumb_path_utf8)   etr->thumb_path_utf8 = g_strdup ("");

Index: file.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/file.c,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -d -r1.194 -r1.195
--- file.c      16 Jan 2007 13:05:38 -0000      1.194
+++ file.c      16 Jan 2007 14:08:55 -0000      1.195
@@ -823,6 +823,15 @@
     g_free (to->subtitle);
     to->subtitle = g_strdup (from->subtitle);
 
+    g_free (to->tvshow);
+    to->tvshow = g_strdup (from->tvshow);
+
+    g_free (to->tvepisode);
+    to->tvepisode = g_strdup (from->tvepisode);
+
+    g_free (to->tvnetwork);
+    to->tvnetwork = g_strdup (from->tvnetwork);
+
     g_free (eto->thumb_path_utf8);
     eto->thumb_path_utf8 = g_strdup (efrom->thumb_path_utf8);
 

Index: misc.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/misc.c,v
retrieving revision 1.214
retrieving revision 1.215
diff -u -d -r1.214 -r1.215
--- misc.c      16 Jan 2007 09:44:59 -0000      1.214
+++ misc.c      16 Jan 2007 14:08:55 -0000      1.215
@@ -1,5 +1,5 @@
 /* -*- coding: utf-8; -*-
-|  Time-stamp: <2007-01-16 17:50:45 jcs>
+|  Time-stamp: <2007-01-16 22:58:57 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -1579,3 +1579,48 @@
 
     return eitdb->offline;
 }
+
+guint32 guiToDB(gint gui)
+{
+  guint32 db = 0;
+  switch (gui)
+    {
+    case 0: db = 0x00000000; break;
+    case 1: db = 0x00000001; break;
+    case 2: db = 0x00000002; break;
+    case 3: db = 0x00000004; break;
+    case 4: db = 0x00000006; break;
+    case 5: db = 0x00000008; break;
+    case 6: db = 0x00000020; break;
+    case 7: db = 0x00000040; break;
+    case 8: db = 0x00000060; break;
+    default:
+      /* This is an error */
+      g_warning ("Programming error: GUI is not in sync with Media Types.\n");
+      db = 0;
+    };
+
+  return db;
+}
+
+gint dbToGUI(guint32 db)
+{
+  gint gui = 0;
+  switch (db)
+    {
+    case 0x00000000: gui = 0; break;
+    case 0x00000001: gui = 1; break;
+    case 0x00000002: gui = 2; break;
+    case 0x00000004: gui = 3; break;
+    case 0x00000006: gui = 4; break;
+    case 0x00000008: gui = 5; break;
+    case 0x00000020: gui = 6; break;
+    case 0x00000040: gui = 7; break;
+    case 0x00000060: gui = 8; break;
+    default:
+      /* Warning */
+      g_warning ("Unknown media type found: %#.8x\n", db);
+      gui = 0;
+    };
+  return gui;
+}

Index: misc.h
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/misc.h,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -d -r1.120 -r1.121
--- misc.h      16 Jan 2007 09:44:59 -0000      1.120
+++ misc.h      16 Jan 2007 14:08:55 -0000      1.121
@@ -254,4 +254,8 @@
                               const gchar *subkey, gint value);
 gboolean get_offline (iTunesDB *itdb);
 gboolean sorting_disabled();
+
+guint32 guiToDB(gint gui);
+gint dbToGUI(guint32 db);
+
 #endif

Index: misc_conversion.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/misc_conversion.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- misc_conversion.c   16 Jan 2007 09:44:59 -0000      1.29
+++ misc_conversion.c   16 Jan 2007 14:08:56 -0000      1.30
@@ -98,6 +98,12 @@
     N_("Remember Playback Position"),
     N_("Skip when Shuffling"),
     N_("Artwork Path"),      /* 40 */
+    N_("Media Type"),
+    N_("TV Show"),
+    N_("TV Episode"),
+    N_("TV Network"),
+    N_("Season Nr"),         /* 45 */
+    N_("Episode Nr"),
     NULL };
 
 /* Tooltips for prefs window */
@@ -145,6 +151,12 @@
     NULL,
     NULL,
     NULL,
+    NULL,   /* 40 */
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,   /* 45 */
     NULL
  };
 

Index: misc_track.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/misc_track.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- misc_track.c        16 Jan 2007 09:44:59 -0000      1.55
+++ misc_track.c        16 Jan 2007 14:08:56 -0000      1.56
@@ -527,6 +527,15 @@
     case T_THUMB_PATH:
        result = &etr->thumb_path_utf8;
        break;
+    case T_TV_SHOW:
+        result = &track->tvshow;
+        break;
+    case T_TV_EPISODE:
+        result = &track->tvepisode;
+        break;
+    case T_TV_NETWORK:
+        result = &track->tvnetwork;
+        break;
     case T_ALL:
     case T_IPOD_ID:
     case T_TRACK_NR:
@@ -551,6 +560,9 @@
     case T_REMEMBER_PLAYBACK_POSITION:
     case T_SKIP_WHEN_SHUFFLING:
     case T_CHECKED:
+    case T_MEDIA_TYPE:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
     case T_ITEM_NUM:
        g_return_val_if_reached (NULL);
     }
@@ -614,6 +626,9 @@
     case T_PODCASTRSS:
     case T_SUBTITLE:
     case T_THUMB_PATH:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
        fritem = track_get_item (frtrack, item);
        toitem_ptr = track_get_item_pointer (totrack, item);
        g_return_val_if_fail (fritem, FALSE);
@@ -787,6 +802,27 @@
            changed = TRUE;
        }
        break;
+    case T_MEDIA_TYPE:
+       if (frtrack->mediatype != totrack->mediatype)
+       {
+           totrack->mediatype = frtrack->mediatype;
+           changed = TRUE;
+       }
+       break;
+    case T_SEASON_NR:
+       if (frtrack->season_nr != totrack->season_nr)
+       {
+           totrack->season_nr = frtrack->season_nr;
+           changed = TRUE;
+       }
+       break;
+    case T_EPISODE_NR:
+       if (frtrack->episode_nr != totrack->episode_nr)
+       {
+           totrack->episode_nr = frtrack->episode_nr;
+           changed = TRUE;
+       }
+       break;
     case T_ITEM_NUM:
     case T_ALL:
        g_return_val_if_reached (FALSE);
@@ -871,6 +907,9 @@
     case T_PODCASTURL:
     case T_PODCASTRSS:
     case T_SUBTITLE:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
        text = g_strdup (track_get_item (track, item));
        break;
     case T_TRACK_NR:
@@ -966,6 +1005,15 @@
     case T_SOUNDCHECK:
        text = g_strdup_printf ("%0.2f", soundcheck_to_replaygain 
(track->soundcheck));
        break;
+    case T_SEASON_NR:
+        text = g_strdup_printf ("%d", track->season_nr);
+       break;
+    case T_EPISODE_NR:
+        text = g_strdup_printf ("%d", track->episode_nr);
+       break;
+    case T_MEDIA_TYPE:
+        text = g_strdup_printf ("%#.8x", track->mediatype);
+       break;
     case T_TRANSFERRED:
     case T_COMPILATION:
     case T_REMEMBER_PLAYBACK_POSITION:
@@ -1039,6 +1087,9 @@
     case T_PODCASTURL:
     case T_PODCASTRSS:
     case T_SUBTITLE:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
         itemp_utf8 = track_get_item_pointer (track, item);
         if (g_utf8_collate (*itemp_utf8, new_text) != 0)
         {
@@ -1203,6 +1254,30 @@
            changed = TRUE;
        }
        break;
+    case T_SEASON_NR:
+        nr = atoi (new_text);
+        if ((nr >= 0) && (nr != track->season_nr))
+        {
+           track->season_nr = nr;
+           changed = TRUE;
+        }
+        break;
+    case T_EPISODE_NR:
+        nr = atoi (new_text);
+        if ((nr >= 0) && (nr != track->episode_nr))
+        {
+           track->episode_nr = nr;
+           changed = TRUE;
+        }
+        break;
+    case T_MEDIA_TYPE:
+        nr = atoi (new_text);
+        if ((nr >= 0) && (nr != track->mediatype))
+        {
+           track->mediatype = nr;
+           changed = TRUE;
+        }
+        break;
     case T_PC_PATH:
     case T_IPOD_PATH:
     case T_IPOD_ID:


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to