From sgarg at helixcommunity.org  Wed Jul  1 21:28:15 2009
From: sgarg at helixcommunity.org (sgarg@helixcommunity.org)
Date: Thu Jul  2 02:59:18 2009
Subject: [Player-cvs] app/gtk mainapp.cpp, 1.141.2.45.2.7,
	1.141.2.45.2.8 mainapp.h, 1.28.2.8.12.1,
	1.28.2.8.12.2 commonapp.cpp, 1.95.2.11.2.1,
	1.95.2.11.2.2 commonapp.h, 1.33.2.1.14.1, 1.33.2.1.14.2
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20885

Modified Files:
      Tag: hxclient_3_4_9_atlas
	mainapp.cpp mainapp.h commonapp.cpp commonapp.h 
Log Message:
Handling ctrl-c SIGINT

Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.1.14.1
retrieving revision 1.33.2.1.14.2
diff -u -d -r1.33.2.1.14.1 -r1.33.2.1.14.2
--- commonapp.h	4 Jun 2009 04:57:00 -0000	1.33.2.1.14.1
+++ commonapp.h	2 Jul 2009 04:28:09 -0000	1.33.2.1.14.2
@@ -70,6 +70,7 @@
 
 #define FF_RW_UPDATE_PERIOD 100 // ms
 
+typedef struct _HXMainWindow HXMainWindow;
 
 typedef struct
 {
@@ -82,6 +83,7 @@
 
     gboolean restart_on_quit;
     gboolean save_preferences;
+    HXMainWindow* app_main_window_destroy;
 } HXCommonApp;
 
 typedef struct
@@ -98,7 +100,6 @@
     gboolean open_in_new_player;
 } HXCommandLineOptions;
 
-typedef struct _HXMainWindow HXMainWindow;
 
 extern HXCommonApp g_hxcommon_app;
 
@@ -119,6 +120,7 @@
                                                  gpointer* data_ptr);
 
 void       hxcommon_show_status_in_player_widget(HXPlayer* player);
+void       signal_interrupt(int signum);
 
 void       hxcommon_embedded_transient_parent_realized (GtkWidget *dialog,
                                                         GdkWindow *parent);

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.11.2.1
retrieving revision 1.95.2.11.2.2
diff -u -d -r1.95.2.11.2.1 -r1.95.2.11.2.2
--- commonapp.cpp	4 Jun 2009 04:57:00 -0000	1.95.2.11.2.1
+++ commonapp.cpp	2 Jul 2009 04:28:09 -0000	1.95.2.11.2.2
@@ -67,6 +67,7 @@
 #include "hlxclib/getopt.h"
 #include "hlxclib/ctype.h"
 #include "hlxclib/time.h"
+#include "hlxclib/signal.h"
 #include 
 
 
@@ -1919,6 +1920,13 @@
     return;
 }
 
+/*XXX:sgarg: This function will be called whenever
+"ctrl-c" signal found*/
+void signal_interrupt(int signum)
+{
+    hx_destroy_on_signal(g_hxcommon_app.app_main_window_destroy); 
+}
+
 int
 main(int argc, char *argv[]) 
 {
@@ -2104,6 +2112,9 @@
             /* else fall through and open up a new player */
         }
         
+    /* Set the INT (Ctrl-C) signal handler to 'signal_interrupt' */
+    signal(SIGINT, signal_interrupt);
+ 
     /* Create the named - pipe */
     pipe =(gchar*) hxget_pipe_path();
     struct stat fileInfo;
@@ -2164,6 +2175,7 @@
         app_main_window = hxwindow_new();
 
 #endif
+      g_hxcommon_app.app_main_window_destroy = app_main_window;
 
         if (!app_main_window)
         {

Index: mainapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/mainapp.cpp,v
retrieving revision 1.141.2.45.2.7
retrieving revision 1.141.2.45.2.8
diff -u -d -r1.141.2.45.2.7 -r1.141.2.45.2.8
--- mainapp.cpp	19 Jun 2009 08:05:48 -0000	1.141.2.45.2.7
+++ mainapp.cpp	2 Jul 2009 04:28:09 -0000	1.141.2.45.2.8
@@ -2339,6 +2339,17 @@
 }
 
 void
+hx_destroy_on_signal(HXMainWindow* window)
+{
+    if ((window == NULL)||(window->window == NULL))
+    {
+    	return;
+    }
+    hmw_stop(window->window);
+    exit(1);
+}
+
+void
 hmw_close(GtkWidget* widget)
 {
     HXMainWindow* window = hxwindow_get_from_widget(widget);

Index: mainapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/mainapp.h,v
retrieving revision 1.28.2.8.12.1
retrieving revision 1.28.2.8.12.2
diff -u -d -r1.28.2.8.12.1 -r1.28.2.8.12.2
--- mainapp.h	7 May 2009 04:58:20 -0000	1.28.2.8.12.1
+++ mainapp.h	2 Jul 2009 04:28:09 -0000	1.28.2.8.12.2
@@ -146,7 +146,7 @@
 void                 hxwindow_set_zoom (HXMainWindow* window,
                                         HXMainWindowZoomSize zoom);
 gboolean expose_event(GtkWidget *widget, GdkEventExpose *ev, gpointer user_data);
-
+void hx_destroy_on_signal(HXMainWindow* window);
 /* hxwindow_request_ownership_for_new_owner allows an outside entity like the 
    playlist manager to take control of elements of the main window, currently 
    previous and next buttons. 


From sgarg at helixcommunity.org  Wed Jul  1 21:31:54 2009
From: sgarg at helixcommunity.org (sgarg@helixcommunity.org)
Date: Thu Jul  2 03:02:58 2009
Subject: [Player-cvs] app/gtk mainapp.cpp, 1.141.2.41.2.10,
	1.141.2.41.2.11 mainapp.h, 1.28.2.8.8.1,
	1.28.2.8.8.2 commonapp.cpp, 1.95.2.9.8.2,
	1.95.2.9.8.3 commonapp.h, 1.33.2.1.10.1, 1.33.2.1.10.2
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20999

Modified Files:
      Tag: hxclient_3_4_7_atlas
	mainapp.cpp mainapp.h commonapp.cpp commonapp.h 
Log Message:
Handling ctrl-c SIGINT

Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.1.10.1
retrieving revision 1.33.2.1.10.2
diff -u -d -r1.33.2.1.10.1 -r1.33.2.1.10.2
--- commonapp.h	4 Jun 2009 04:55:50 -0000	1.33.2.1.10.1
+++ commonapp.h	2 Jul 2009 04:31:52 -0000	1.33.2.1.10.2
@@ -70,6 +70,7 @@
 
 #define FF_RW_UPDATE_PERIOD 100 // ms
 
+typedef struct _HXMainWindow HXMainWindow;
 
 typedef struct
 {
@@ -82,6 +83,7 @@
 
     gboolean restart_on_quit;
     gboolean save_preferences;
+    HXMainWindow* app_main_window_destroy;
 } HXCommonApp;
 
 typedef struct
@@ -98,7 +100,6 @@
     gboolean open_in_new_player;
 } HXCommandLineOptions;
 
-typedef struct _HXMainWindow HXMainWindow;
 
 extern HXCommonApp g_hxcommon_app;
 
@@ -119,6 +120,7 @@
                                                  gpointer* data_ptr);
 
 void       hxcommon_show_status_in_player_widget(HXPlayer* player);
+void       signal_interrupt(int signum);
 
 void       hxcommon_embedded_transient_parent_realized (GtkWidget *dialog,
                                                         GdkWindow *parent);

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.9.8.2
retrieving revision 1.95.2.9.8.3
diff -u -d -r1.95.2.9.8.2 -r1.95.2.9.8.3
--- commonapp.cpp	4 Jun 2009 04:55:50 -0000	1.95.2.9.8.2
+++ commonapp.cpp	2 Jul 2009 04:31:52 -0000	1.95.2.9.8.3
@@ -67,6 +67,7 @@
 #include "hlxclib/getopt.h"
 #include "hlxclib/ctype.h"
 #include "hlxclib/time.h"
+#include "hlxclib/signal.h"
 #include 
 
 
@@ -1915,6 +1916,13 @@
     return;
 }
 
+/*XXX:sgarg: This function will be called whenever
+"ctrl-c" signal found*/
+void signal_interrupt(int signum)
+{
+    hx_destroy_on_signal(g_hxcommon_app.app_main_window_destroy); 
+}
+
 int
 main(int argc, char *argv[]) 
 {
@@ -2100,6 +2108,9 @@
             /* else fall through and open up a new player */
         }
         
+    /* Set the INT (Ctrl-C) signal handler to 'signal_interrupt' */
+    signal(SIGINT, signal_interrupt);
+ 
     /* Create the named - pipe */
     pipe =(gchar*) hxget_pipe_path();
     struct stat fileInfo;
@@ -2160,6 +2171,7 @@
         app_main_window = hxwindow_new();
 
 #endif
+      g_hxcommon_app.app_main_window_destroy = app_main_window;
 
         if (!app_main_window)
         {

Index: mainapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/mainapp.cpp,v
retrieving revision 1.141.2.41.2.10
retrieving revision 1.141.2.41.2.11
diff -u -d -r1.141.2.41.2.10 -r1.141.2.41.2.11
--- mainapp.cpp	19 Jun 2009 07:58:56 -0000	1.141.2.41.2.10
+++ mainapp.cpp	2 Jul 2009 04:31:52 -0000	1.141.2.41.2.11
@@ -2339,6 +2339,17 @@
 }
 
 void
+hx_destroy_on_signal(HXMainWindow* window)
+{
+    if ((window == NULL)||(window->window == NULL))
+    {
+    	return;
+    }
+    hmw_stop(window->window);
+    exit(1);
+}
+
+void
 hmw_close(GtkWidget* widget)
 {
     HXMainWindow* window = hxwindow_get_from_widget(widget);

Index: mainapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/mainapp.h,v
retrieving revision 1.28.2.8.8.1
retrieving revision 1.28.2.8.8.2
diff -u -d -r1.28.2.8.8.1 -r1.28.2.8.8.2
--- mainapp.h	7 May 2009 05:03:47 -0000	1.28.2.8.8.1
+++ mainapp.h	2 Jul 2009 04:31:52 -0000	1.28.2.8.8.2
@@ -146,7 +146,7 @@
 void                 hxwindow_set_zoom (HXMainWindow* window,
                                         HXMainWindowZoomSize zoom);
 gboolean expose_event(GtkWidget *widget, GdkEventExpose *ev, gpointer user_data);
-
+void hx_destroy_on_signal(HXMainWindow* window);
 /* hxwindow_request_ownership_for_new_owner allows an outside entity like the 
    playlist manager to take control of elements of the main window, currently 
    previous and next buttons. 


From sgarg at helixcommunity.org  Wed Jul  1 21:33:31 2009
From: sgarg at helixcommunity.org (sgarg@helixcommunity.org)
Date: Thu Jul  2 03:04:33 2009
Subject: [Player-cvs] app/gtk mainapp.cpp, 1.141.2.51, 1.141.2.52 mainapp.h,
	1.28.2.9, 1.28.2.10 commonapp.cpp, 1.95.2.12,
	1.95.2.13 commonapp.h, 1.33.2.2, 1.33.2.3
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv21290

Modified Files:
      Tag: hxclient_3_1_0_atlas
	mainapp.cpp mainapp.h commonapp.cpp commonapp.h 
Log Message:
Handling ctrl-c SIGINT

Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.2
retrieving revision 1.33.2.3
diff -u -d -r1.33.2.2 -r1.33.2.3
--- commonapp.h	4 Jun 2009 04:37:40 -0000	1.33.2.2
+++ commonapp.h	2 Jul 2009 04:33:29 -0000	1.33.2.3
@@ -70,6 +70,7 @@
 
 #define FF_RW_UPDATE_PERIOD 100 // ms
 
+typedef struct _HXMainWindow HXMainWindow;
 
 typedef struct
 {
@@ -82,6 +83,7 @@
 
     gboolean restart_on_quit;
     gboolean save_preferences;
+    HXMainWindow* app_main_window_destroy;
 } HXCommonApp;
 
 typedef struct
@@ -98,7 +100,6 @@
     gboolean open_in_new_player;
 } HXCommandLineOptions;
 
-typedef struct _HXMainWindow HXMainWindow;
 
 extern HXCommonApp g_hxcommon_app;
 
@@ -119,6 +120,7 @@
                                                  gpointer* data_ptr);
 
 void       hxcommon_show_status_in_player_widget(HXPlayer* player);
+void       signal_interrupt(int signum);
 
 void       hxcommon_embedded_transient_parent_realized (GtkWidget *dialog,
                                                         GdkWindow *parent);

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.12
retrieving revision 1.95.2.13
diff -u -d -r1.95.2.12 -r1.95.2.13
--- commonapp.cpp	4 Jun 2009 04:37:40 -0000	1.95.2.12
+++ commonapp.cpp	2 Jul 2009 04:33:29 -0000	1.95.2.13
@@ -67,6 +67,7 @@
 #include "hlxclib/getopt.h"
 #include "hlxclib/ctype.h"
 #include "hlxclib/time.h"
+#include "hlxclib/signal.h"
 #include 
 
 
@@ -1919,6 +1920,13 @@
     return;
 }
 
+/*XXX:sgarg: This function will be called whenever
+"ctrl-c" signal found*/
+void signal_interrupt(int signum)
+{
+    hx_destroy_on_signal(g_hxcommon_app.app_main_window_destroy); 
+}
+
 int
 main(int argc, char *argv[]) 
 {
@@ -2104,6 +2112,9 @@
             /* else fall through and open up a new player */
         }
         
+    /* Set the INT (Ctrl-C) signal handler to 'signal_interrupt' */
+    signal(SIGINT, signal_interrupt);
+ 
     /* Create the named - pipe */
     pipe =(gchar*) hxget_pipe_path();
     struct stat fileInfo;
@@ -2164,6 +2175,7 @@
         app_main_window = hxwindow_new();
 
 #endif
+      g_hxcommon_app.app_main_window_destroy = app_main_window;
 
         if (!app_main_window)
         {

Index: mainapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/mainapp.cpp,v
retrieving revision 1.141.2.51
retrieving revision 1.141.2.52
diff -u -d -r1.141.2.51 -r1.141.2.52
--- mainapp.cpp	19 Jun 2009 08:08:11 -0000	1.141.2.51
+++ mainapp.cpp	2 Jul 2009 04:33:29 -0000	1.141.2.52
@@ -2339,6 +2339,17 @@
 }
 
 void
+hx_destroy_on_signal(HXMainWindow* window)
+{
+    if ((window == NULL)||(window->window == NULL))
+    {
+    	return;
+    }
+    hmw_stop(window->window);
+    exit(1);
+}
+
+void
 hmw_close(GtkWidget* widget)
 {
     HXMainWindow* window = hxwindow_get_from_widget(widget);

Index: mainapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/mainapp.h,v
retrieving revision 1.28.2.9
retrieving revision 1.28.2.10
diff -u -d -r1.28.2.9 -r1.28.2.10
--- mainapp.h	7 May 2009 04:35:12 -0000	1.28.2.9
+++ mainapp.h	2 Jul 2009 04:33:29 -0000	1.28.2.10
@@ -146,7 +146,7 @@
 void                 hxwindow_set_zoom (HXMainWindow* window,
                                         HXMainWindowZoomSize zoom);
 gboolean expose_event(GtkWidget *widget, GdkEventExpose *ev, gpointer user_data);
-
+void hx_destroy_on_signal(HXMainWindow* window);
 /* hxwindow_request_ownership_for_new_owner allows an outside entity like the 
    playlist manager to take control of elements of the main window, currently 
    previous and next buttons. 


From admin at helixcommunity.org  Wed Jul 15 10:19:39 2009
From: admin at helixcommunity.org (admin@helixcommunity.org)
Date: Wed Jul 15 15:47:59 2009
Subject: [Player-cvs] CVSROOT loginfo,1.10,1.11
Message-ID: 

Update of /cvsroot/player/CVSROOT
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv8627

Modified Files:
	loginfo 
Log Message:
updated loginfo to use centralized loginfo-handler

Index: loginfo
===================================================================
RCS file: /cvsroot/player/CVSROOT/loginfo,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- loginfo	13 Dec 2007 19:47:49 -0000	1.10
+++ loginfo	15 Jul 2009 17:19:37 -0000	1.11
@@ -26,17 +26,5 @@
 # or
 #DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
 
-# By using DEFAULT and www (rather than ALL and www), the script only
-# gets evoked once when a checkin occurs.  This is important because
-# there's a hard-coded address for *all* checkins
-
-DEFAULT /cvsroot/community/CVSROOT/syncmail -u -f helixcommunity.org %{sVv} player-cvs@lists.helixcommunity.org
-
-www /cvsroot/community/CVSROOT/syncmail -u -f helixcommunity.org %{sVv} community-allwww-cvs@lists.helixcommunity.org player-cvs@lists.helixcommunity.org
-
-
-## ViewCVS handler 
-ALL echo "%{sVv}" | /usr/local/viewcvs/loginfo-handler
-
-ALL chgrp helix $CVSROOT/`echo %s | sed 's/^ //g' | sed 's/ /\//g'`,v 2> /dev/null
-ALL chgrp helix $CVSROOT/`echo %s | sed 's/ - New directory//g' | sed 's/^ //g' | sed 's/ /\//g'` 2> /dev/null
+# Call the centralized loginfo handler
+ALL /cvsroot/community/CVSROOT/loginfo-handler "%{sVv}"


From mmanjunath at helixcommunity.org  Wed Jul 15 23:03:05 2009
From: mmanjunath at helixcommunity.org (mmanjunath@helixcommunity.org)
Date: Thu Jul 16 04:31:17 2009
Subject: [Player-cvs] app/gtk medialib.cpp, 1.1.2.35.6.3,
	1.1.2.35.6.4 medialib.h, 1.1.2.14,
	1.1.2.14.6.1 medialibplaylist.cpp, 1.1.2.21.6.1, 1.1.2.21.6.2
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv3980

Modified Files:
      Tag: hxclient_3_4_7_atlas
	medialib.cpp medialib.h medialibplaylist.cpp 
Log Message:
size manipulation changes and to support localization

Index: medialib.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/Attic/medialib.cpp,v
retrieving revision 1.1.2.35.6.3
retrieving revision 1.1.2.35.6.4
diff -u -d -r1.1.2.35.6.3 -r1.1.2.35.6.4
--- medialib.cpp	23 Jun 2009 02:28:43 -0000	1.1.2.35.6.3
+++ medialib.cpp	16 Jul 2009 06:03:02 -0000	1.1.2.35.6.4
@@ -59,6 +59,7 @@
 #include "hxplayer-i18n.h"
 #include "hxutil.h" // For hx_util_tree_path_to_index()
 #include "hxemptycollectionlabel.h"
+#define PADDING 10
 
 gboolean 
 UpdateTimeout(gpointer pdata)
@@ -462,6 +463,19 @@
 OnMyLibraryButton(GtkWidget *widget, gpointer user_data)
 {
     HXMediaLibrary* pMediaLibrary = (HXMediaLibrary*)user_data;
+    if(!pMediaLibrary->myLib_music_col_width)
+    {
+        GtkTreeViewColumn *column;
+        int i,column_width;
+        for(i = 0; i < 6; i++)//6 --> columns(title,artist,album,duration,genre,clipname)
+        {
+            column = gtk_tree_view_get_column((GtkTreeView*)pMediaLibrary->musictreeview, i);
+            column_width = gtk_tree_view_column_get_width(column);
+            gtk_tree_view_column_set_sizing(column,GTK_TREE_VIEW_COLUMN_FIXED);
+            gtk_tree_view_column_set_fixed_width(column, column_width+PADDING);
+        }
+        pMediaLibrary->myLib_music_col_width = TRUE;
+    }
     gtk_notebook_set_current_page(GTK_NOTEBOOK(pMediaLibrary->main_notebook), 1);
 }
 
@@ -660,6 +674,7 @@
     column = gtk_tree_view_column_new_with_attributes(_("Album"), renderer, "text", COLUMN_ALBUM, NULL);
     if(window->albumcolumnwidth)
     {
+        pMedialib->myLib_music_col_width = TRUE;
         gtk_tree_view_column_set_sizing(column,GTK_TREE_VIEW_COLUMN_FIXED);
         gtk_tree_view_column_set_fixed_width(column, window->albumcolumnwidth);
     }

Index: medialib.h
===================================================================
RCS file: /cvsroot/player/app/gtk/Attic/medialib.h,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.14.6.1
diff -u -d -r1.1.2.14 -r1.1.2.14.6.1
--- medialib.h	18 Nov 2008 10:39:54 -0000	1.1.2.14
+++ medialib.h	16 Jul 2009 06:03:02 -0000	1.1.2.14.6.1
@@ -95,6 +95,7 @@
     GtkWidget* gtk_dialog;
     GtkWidget* delete_dialog_ok_button;
     GtkWidget* message_displayed;
+    gboolean myLib_music_col_width;
 };
 
 HX_RESULT Initialize_Medialibrary(HXMainWindow* window);

Index: medialibplaylist.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/Attic/medialibplaylist.cpp,v
retrieving revision 1.1.2.21.6.1
retrieving revision 1.1.2.21.6.2
diff -u -d -r1.1.2.21.6.1 -r1.1.2.21.6.2
--- medialibplaylist.cpp	13 May 2009 05:26:25 -0000	1.1.2.21.6.1
+++ medialibplaylist.cpp	16 Jul 2009 06:03:02 -0000	1.1.2.21.6.2
@@ -158,8 +158,8 @@
     GtkWidget* playlist_menu = gtk_menu_new ();
 
 
-    pPlayAll = gtk_menu_item_new_with_label ("Play All "); 
-    pRemove = gtk_menu_item_new_with_label ("Remove"); 
+    pPlayAll = gtk_menu_item_new_with_label (_("Play All ")); 
+    pRemove = gtk_menu_item_new_with_label (_("Remove")); 
 		
 
     HXMainWindow* window = (HXMainWindow*)user_data;


From mmanjunath at helixcommunity.org  Wed Jul 15 23:07:42 2009
From: mmanjunath at helixcommunity.org (mmanjunath@helixcommunity.org)
Date: Thu Jul 16 04:35:55 2009
Subject: [Player-cvs] app/gtk/po potgen.sh,1.7.44.1,1.7.44.2
Message-ID: 

Update of /cvsroot/player/app/gtk/po
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv4796

Modified Files:
      Tag: hxclient_3_4_7_atlas
	potgen.sh 
Log Message:
changes and to support localization

Index: potgen.sh
===================================================================
RCS file: /cvsroot/player/app/gtk/po/potgen.sh,v
retrieving revision 1.7.44.1
retrieving revision 1.7.44.2
diff -u -d -r1.7.44.1 -r1.7.44.2
--- potgen.sh	13 May 2009 05:28:29 -0000	1.7.44.1
+++ potgen.sh	16 Jul 2009 06:07:40 -0000	1.7.44.2
@@ -1,6 +1,11 @@
 #!/bin/bash
 # Every file in its own line to make cvs diff more useful.
+# intltool-extract generates *.glade.h
+intltool-extract --type=gettext/glade ../../../netbook/chrome/netbook.glade
+intltool-extract --type=gettext/glade ../../../netbook/chrome/newplaylist.glade
 xgettext --directory=.. --keyword=_ --keyword=N_ --from-code=UTF-8 --msgid-bugs-address=dev@player.helixcommunity.org -o hxplayer.pot \
+../../netbook/chrome/netbook.glade.h                                 \
+../../netbook/chrome/newplaylist.glade.h                             \
 about.cpp                                                            \
 about_interface.c                                                    \
 apputil.cpp                                                          \


From mmanjunath at helixcommunity.org  Wed Jul 15 23:29:21 2009
From: mmanjunath at helixcommunity.org (mmanjunath@helixcommunity.org)
Date: Thu Jul 16 04:57:33 2009
Subject: [Player-cvs] netbook/chrome netbook.glade, 1.2.2.45.6.4,
	1.2.2.45.6.5 netbook.gtkrc, 1.1.2.18,
	1.1.2.18.6.1 newplaylist.glade, 1.1.2.1.6.2, 1.1.2.1.6.3
Message-ID: 

Update of /cvsroot/player/netbook/chrome
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv7901

Modified Files:
      Tag: hxclient_3_4_7_atlas
	netbook.glade netbook.gtkrc newplaylist.glade 
Log Message:
changes to support localization

Index: newplaylist.glade
===================================================================
RCS file: /cvsroot/player/netbook/chrome/Attic/newplaylist.glade,v
retrieving revision 1.1.2.1.6.2
retrieving revision 1.1.2.1.6.3
diff -u -d -r1.1.2.1.6.2 -r1.1.2.1.6.3
--- newplaylist.glade	17 Jun 2009 06:12:58 -0000	1.1.2.1.6.2
+++ newplaylist.glade	16 Jul 2009 06:29:18 -0000	1.1.2.1.6.3
@@ -127,7 +127,6 @@
 
 		  
 		    
-		      170
 		      True
 		      Playlist Name:
 		      False
@@ -137,7 +136,7 @@
 		      False
 		      0.2
 		      0.5
-		      0
+		      10
 		      0
 		      PANGO_ELLIPSIZE_NONE
 		      -1

Index: netbook.gtkrc
===================================================================
RCS file: /cvsroot/player/netbook/chrome/netbook.gtkrc,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.18.6.1
diff -u -d -r1.1.2.18 -r1.1.2.18.6.1
--- netbook.gtkrc	20 Nov 2008 18:51:40 -0000	1.1.2.18
+++ netbook.gtkrc	16 Jul 2009 06:29:18 -0000	1.1.2.18.6.1
@@ -124,7 +124,7 @@
 
     GtkButton::child_displacement_x = 0
     GtkButton::child_displacement_y = 0
-    GtkButton::inner_border = {0,0,0,0}
+    GtkButton::inner_border = {20,20,0,0}
 
     xthickness = 0
     ythickness = 0

Index: netbook.glade
===================================================================
RCS file: /cvsroot/player/netbook/chrome/netbook.glade,v
retrieving revision 1.2.2.45.6.4
retrieving revision 1.2.2.45.6.5
diff -u -d -r1.2.2.45.6.4 -r1.2.2.45.6.5
--- netbook.glade	7 May 2009 05:01:18 -0000	1.2.2.45.6.4
+++ netbook.glade	16 Jul 2009 06:29:18 -0000	1.2.2.45.6.5
@@ -732,7 +732,6 @@
                 True
                 
                   
-                    110
                     True
                     True
                     False
@@ -760,7 +759,6 @@
                 
                 
                   
-                    110
                     True
                     True
                     False
@@ -788,7 +786,6 @@
                 
                 
                   
-                    110
                     True
                     True
                     False
@@ -863,7 +860,6 @@
                     True
                     
                       
-                        150
                         True
                         
                           
@@ -1307,7 +1303,7 @@
                                     True
                                     False
                                     True
-                                    Previous photo
+                                    Previous photo
                                     GTK_RELIEF_NONE
                                     0
                                     
@@ -1330,7 +1326,7 @@
                                     True
                                     False
                                     True
-                                    Next photo
+                                    Next photo
                                     GTK_RELIEF_NONE
                                     0
                                     
@@ -1365,14 +1361,14 @@
                                     True
                                     False
                                     True
-                                    View selected photo
+                                    View selected photo
                                     GTK_RELIEF_NONE
                                     0
                                     
                                       
                                         True
                                         True
-                                        View selected photo
+                                        View selected photo
                                         slideshow_resize_button
                                         5
                                       
@@ -1391,7 +1387,7 @@
                                     True
                                     False
                                     True
-                                    Begin slide show
+                                    Begin slide show
                                     GTK_RELIEF_NONE
                                     0
                                     
@@ -1426,7 +1422,7 @@
                                     True
                                     False
                                     True
-                                    Rotate counterclockwise
+                                    Rotate counterclockwise
                                     GTK_RELIEF_NONE
                                     0
                                     
@@ -1450,7 +1446,7 @@
                                     True
                                     False
                                     True
-                                    Rotate clockwise
+                                    Rotate clockwise
                                     GTK_RELIEF_NONE
                                     0
                                     
@@ -1525,7 +1521,6 @@
                 True
                 
                   
-                    175
                     True
                     
                       


From admin at helixcommunity.org  Fri Jul 17 03:05:23 2009
From: admin at helixcommunity.org (admin@helixcommunity.org)
Date: Fri Jul 17 08:33:20 2009
Subject: [Player-cvs] CVSROOT loginfo,1.11,1.12
Message-ID: 

Update of /cvsroot/player/CVSROOT
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv25899

Modified Files:
	loginfo 
Log Message:
Made player to send notifications to player-cvs upon cvs commit

Index: loginfo
===================================================================
RCS file: /cvsroot/player/CVSROOT/loginfo,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- loginfo	15 Jul 2009 17:19:37 -0000	1.11
+++ loginfo	17 Jul 2009 10:05:21 -0000	1.12
@@ -28,3 +28,4 @@
 
 # Call the centralized loginfo handler
 ALL /cvsroot/community/CVSROOT/loginfo-handler "%{sVv}"
+DEFAULT /cvsroot/community/CVSROOT/syncmail -u -f helixcommunity.org %{sVv} player-cvs@lists.helixcommunity.org


From mmanjunath at helixcommunity.org  Tue Jul 21 04:08:43 2009
From: mmanjunath at helixcommunity.org (mmanjunath@helixcommunity.org)
Date: Tue Jul 21 09:35:53 2009
Subject: [Player-cvs] app/gtk preferences_interface.c, 1.39.10.3.8.2,
	1.39.10.3.8.3 medialibplaylist.cpp, 1.1.2.21.6.2, 1.1.2.21.6.3
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv9219

Modified Files:
      Tag: hxclient_3_4_7_atlas
	preferences_interface.c medialibplaylist.cpp 
Log Message:
changes to support localization

Index: preferences_interface.c
===================================================================
RCS file: /cvsroot/player/app/gtk/preferences_interface.c,v
retrieving revision 1.39.10.3.8.2
retrieving revision 1.39.10.3.8.3
diff -u -d -r1.39.10.3.8.2 -r1.39.10.3.8.3
--- preferences_interface.c	30 Apr 2009 04:01:35 -0000	1.39.10.3.8.2
+++ preferences_interface.c	21 Jul 2009 11:08:41 -0000	1.39.10.3.8.3
@@ -263,7 +263,7 @@
   hxplayer_preferences_dialog = gtk_dialog_new ();
   gtk_widget_set_name (hxplayer_preferences_dialog, "hxplayer_preferences_dialog");
   gtk_window_set_title (GTK_WINDOW (hxplayer_preferences_dialog), _("Preferences"));
-  gtk_widget_set_size_request(GTK_WIDGET(hxplayer_preferences_dialog), 650, 410);
+  gtk_widget_set_size_request(GTK_WIDGET(hxplayer_preferences_dialog), 670, 410);
   hxplayer_preferences_dialog_icon_pixbuf = create_pixbuf ("icon.png");
   if (hxplayer_preferences_dialog_icon_pixbuf)
     {

Index: medialibplaylist.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/Attic/medialibplaylist.cpp,v
retrieving revision 1.1.2.21.6.2
retrieving revision 1.1.2.21.6.3
diff -u -d -r1.1.2.21.6.2 -r1.1.2.21.6.3
--- medialibplaylist.cpp	16 Jul 2009 06:03:02 -0000	1.1.2.21.6.2
+++ medialibplaylist.cpp	21 Jul 2009 11:08:41 -0000	1.1.2.21.6.3
@@ -479,7 +479,7 @@
     gtk_tree_view_append_column(GTK_TREE_VIEW(pPlaylist->myplaylistitems), column); 
 	
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("Genre", renderer, "text", COLUMN_GENRE, NULL);
+    column = gtk_tree_view_column_new_with_attributes(_("Genre"), renderer, "text", COLUMN_GENRE, NULL);
     gtk_tree_view_append_column(GTK_TREE_VIEW(pPlaylist->myplaylistitems), column);   
     gtk_tree_view_column_set_resizable(column, TRUE);
 


From mmanjunath at helixcommunity.org  Tue Jul 21 04:08:44 2009
From: mmanjunath at helixcommunity.org (mmanjunath@helixcommunity.org)
Date: Tue Jul 21 09:35:53 2009
Subject: [Player-cvs] app/gtk preferences_interface.c, 1.39.10.3.8.2,
	1.39.10.3.8.3 medialibplaylist.cpp, 1.1.2.21.6.2, 1.1.2.21.6.3
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv9219

Modified Files:
      Tag: hxclient_3_4_7_atlas
	preferences_interface.c medialibplaylist.cpp 
Log Message:
changes to support localization

Index: preferences_interface.c
===================================================================
RCS file: /cvsroot/player/app/gtk/preferences_interface.c,v
retrieving revision 1.39.10.3.8.2
retrieving revision 1.39.10.3.8.3
diff -u -d -r1.39.10.3.8.2 -r1.39.10.3.8.3
--- preferences_interface.c	30 Apr 2009 04:01:35 -0000	1.39.10.3.8.2
+++ preferences_interface.c	21 Jul 2009 11:08:41 -0000	1.39.10.3.8.3
@@ -263,7 +263,7 @@
   hxplayer_preferences_dialog = gtk_dialog_new ();
   gtk_widget_set_name (hxplayer_preferences_dialog, "hxplayer_preferences_dialog");
   gtk_window_set_title (GTK_WINDOW (hxplayer_preferences_dialog), _("Preferences"));
-  gtk_widget_set_size_request(GTK_WIDGET(hxplayer_preferences_dialog), 650, 410);
+  gtk_widget_set_size_request(GTK_WIDGET(hxplayer_preferences_dialog), 670, 410);
   hxplayer_preferences_dialog_icon_pixbuf = create_pixbuf ("icon.png");
   if (hxplayer_preferences_dialog_icon_pixbuf)
     {

Index: medialibplaylist.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/Attic/medialibplaylist.cpp,v
retrieving revision 1.1.2.21.6.2
retrieving revision 1.1.2.21.6.3
diff -u -d -r1.1.2.21.6.2 -r1.1.2.21.6.3
--- medialibplaylist.cpp	16 Jul 2009 06:03:02 -0000	1.1.2.21.6.2
+++ medialibplaylist.cpp	21 Jul 2009 11:08:41 -0000	1.1.2.21.6.3
@@ -479,7 +479,7 @@
     gtk_tree_view_append_column(GTK_TREE_VIEW(pPlaylist->myplaylistitems), column); 
 	
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("Genre", renderer, "text", COLUMN_GENRE, NULL);
+    column = gtk_tree_view_column_new_with_attributes(_("Genre"), renderer, "text", COLUMN_GENRE, NULL);
     gtk_tree_view_append_column(GTK_TREE_VIEW(pPlaylist->myplaylistitems), column);   
     gtk_tree_view_column_set_resizable(column, TRUE);
 


From kliu at helixcommunity.org  Mon Jul 27 15:06:26 2009
From: kliu at helixcommunity.org (kliu@helixcommunity.org)
Date: Mon Jul 27 20:32:18 2009
Subject: [Player-cvs] CVSROOT avail,1.128,1.129
Message-ID: 

Update of /cvsroot/player/CVSROOT
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv14134

Modified Files:
	avail 
Log Message:
'granting raosanath write access for the player project'

Index: avail
===================================================================
RCS file: /cvsroot/player/CVSROOT/avail,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -d -r1.128 -r1.129
--- avail	22 Jun 2009 19:42:46 -0000	1.128
+++ avail	27 Jul 2009 22:06:24 -0000	1.129
@@ -1,4 +1,5 @@
 unavail
+avail|raosanath
 avail|gperegrin
 avail|daniilf
 avail|kvn


From kliu at helixcommunity.org  Mon Jul 27 15:06:27 2009
From: kliu at helixcommunity.org (kliu@helixcommunity.org)
Date: Mon Jul 27 20:32:20 2009
Subject: [Player-cvs] CVSROOT avail,1.128,1.129
Message-ID: 

Update of /cvsroot/player/CVSROOT
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv14134

Modified Files:
	avail 
Log Message:
'granting raosanath write access for the player project'

Index: avail
===================================================================
RCS file: /cvsroot/player/CVSROOT/avail,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -d -r1.128 -r1.129
--- avail	22 Jun 2009 19:42:46 -0000	1.128
+++ avail	27 Jul 2009 22:06:24 -0000	1.129
@@ -1,4 +1,5 @@
 unavail
+avail|raosanath
 avail|gperegrin
 avail|daniilf
 avail|kvn


From cbailey at helixcommunity.org  Tue Jul 28 14:05:21 2009
From: cbailey at helixcommunity.org (cbailey@helixcommunity.org)
Date: Tue Jul 28 19:31:04 2009
Subject: [Player-cvs] kit/android/recorder HXMediaRecorder.cpp, 1.1,
	1.2 guids.cpp, 1.1, 1.2 hxrecorderdriver.cpp, 1.1,
	1.2 libhelixrecorder, 1.1, 1.2
Message-ID: 

Update of /cvsroot/player/kit/android/recorder
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv11546

Modified Files:
	HXMediaRecorder.cpp guids.cpp hxrecorderdriver.cpp 
	libhelixrecorder 
Log Message:
Rearchitected recorder check in. Using dtdrive plugin, android is now a part of capture device discovery.

Index: libhelixrecorder
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/libhelixrecorder,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- libhelixrecorder	15 Jun 2009 19:57:24 -0000	1.1
+++ libhelixrecorder	28 Jul 2009 21:05:18 -0000	1.2
@@ -45,13 +45,6 @@
 
 project.AddModuleIncludes("client/encodesvc/include")
 
-project.AddModuleLibraries("client/encodesvc/common/util[produtillib]",
-                           "client/encodesvc/recordengine[recordenginelib]")
-
-# Debug wav
-#project.AddModuleLibraries("datatype/wav/common/util[wavcomlib]")
-#project.AddModuleIncludes("datatype/wav/common/util/pub")
-###
 project.AddModuleIncludes("common/include",
                           "common/container/pub",
                           "common/runtime/pub",
@@ -61,6 +54,7 @@
                           "client/include",
                           "client/common/system/pub",
                           "datatype/rm/include",
+                          "datatype/tools/dtdriver/engine/pub",
                           "datatype/tools/minicntx/pub",
                           "video/include",
                           "audio/include",
@@ -82,9 +76,7 @@
 			   "client/common/util[utlclntlib]",
                            "client/common/netio[netioclntlib]",
 			   "client/medpltfm[hxmedpltfmlib]",
-			   "datatype/tools/minicntx",
                            "audio/device[auddevlib]",
-			   "datatype/common/filewriter[wrtrlib]",
 			   "datatype/common/util[dtutillib]",
                            "client/videosvc[vidsvclib]",
 			)

Index: HXMediaRecorder.cpp
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/HXMediaRecorder.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- HXMediaRecorder.cpp	15 Jun 2009 19:57:24 -0000	1.1
+++ HXMediaRecorder.cpp	28 Jul 2009 21:05:18 -0000	1.2
@@ -75,7 +75,7 @@
     }
     else
     {
-	LOGE("Could not create HXRecorderDriver");
+	LOGE("Out of memory. Could not create HXRecorderDriver");
     }
 }
 
@@ -96,7 +96,7 @@
         return UNKNOWN_ERROR;
     }
 
-    return m_pRecorderDriver->enqueueCommand(new RecorderInit(0,0));
+    return m_pRecorderDriver->handleInit();
 }
 
 status_t HXMediaRecorder::setAudioSource(audio_source as)
@@ -197,8 +197,10 @@
     LOGD("STOP");
     // After stopping record, return to the init state
     m_pRecorderDriver->enqueueCommand(new RecorderStop(0,0));  // Stop recording
-    reset();// Clear record settings
-    close(); // Close camera and mic
+    // Clear record settings
+    m_pRecorderDriver->enqueueCommand(new RecorderReset(0,0));
+    // Close camera and mic
+    m_pRecorderDriver->enqueueCommand(new RecorderClose(0,0));
 
     return OK;
 }

Index: hxrecorderdriver.cpp
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/hxrecorderdriver.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- hxrecorderdriver.cpp	15 Jun 2009 19:57:24 -0000	1.1
+++ hxrecorderdriver.cpp	28 Jul 2009 21:05:18 -0000	1.2
@@ -57,55 +57,22 @@
 #include 
 
 #include "hxtypes.h"
-#include "ihxmedpltfm.h"
-#include "hxcom.h"
-#include "hxcomm.h"
-#include "hxcore.h"
-#include "hxclsnk.h"
-#include "hxerror.h"
-#include "hxprefs.h"
-#include "hxstrutl.h"
[...1481 lines suppressed...]
-        if (m_bClientCamera)
-	{
-            m_spCamera->unlock();
-        }
-	else
-	{
-            m_spCamera->disconnect();
-        }
+    // Set the terminated flag
+    m_bTerminated = TRUE;
 
-        m_bCameraPreviewEnabled = FALSE;
-        m_bClientCamera = FALSE;
-        m_spCamera.clear();
-    }
-    LOGD("END closeVideoRecord");
-    return OK;
+    return HXR_OK;
 }
 

Index: guids.cpp
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/guids.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- guids.cpp	15 Jun 2009 19:57:24 -0000	1.1
+++ guids.cpp	28 Jul 2009 21:05:18 -0000	1.2
@@ -52,6 +52,7 @@
 #include "hxccf.h"
 
 #include "ihxdownloadmgr.h"
+#include "hxdtdr.h"
 
 #include "hxiids.h"
 #include "hxpiids.h"


From cbailey at helixcommunity.org  Tue Jul 28 14:05:20 2009
From: cbailey at helixcommunity.org (cbailey@helixcommunity.org)
Date: Tue Jul 28 19:31:04 2009
Subject: [Player-cvs] kit/android/recorder HXMediaRecorder.cpp, 1.1,
	1.2 guids.cpp, 1.1, 1.2 hxrecorderdriver.cpp, 1.1,
	1.2 libhelixrecorder, 1.1, 1.2
Message-ID: 

Update of /cvsroot/player/kit/android/recorder
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv11546

Modified Files:
	HXMediaRecorder.cpp guids.cpp hxrecorderdriver.cpp 
	libhelixrecorder 
Log Message:
Rearchitected recorder check in. Using dtdrive plugin, android is now a part of capture device discovery.

Index: libhelixrecorder
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/libhelixrecorder,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- libhelixrecorder	15 Jun 2009 19:57:24 -0000	1.1
+++ libhelixrecorder	28 Jul 2009 21:05:18 -0000	1.2
@@ -45,13 +45,6 @@
 
 project.AddModuleIncludes("client/encodesvc/include")
 
-project.AddModuleLibraries("client/encodesvc/common/util[produtillib]",
-                           "client/encodesvc/recordengine[recordenginelib]")
-
-# Debug wav
-#project.AddModuleLibraries("datatype/wav/common/util[wavcomlib]")
-#project.AddModuleIncludes("datatype/wav/common/util/pub")
-###
 project.AddModuleIncludes("common/include",
                           "common/container/pub",
                           "common/runtime/pub",
@@ -61,6 +54,7 @@
                           "client/include",
                           "client/common/system/pub",
                           "datatype/rm/include",
+                          "datatype/tools/dtdriver/engine/pub",
                           "datatype/tools/minicntx/pub",
                           "video/include",
                           "audio/include",
@@ -82,9 +76,7 @@
 			   "client/common/util[utlclntlib]",
                            "client/common/netio[netioclntlib]",
 			   "client/medpltfm[hxmedpltfmlib]",
-			   "datatype/tools/minicntx",
                            "audio/device[auddevlib]",
-			   "datatype/common/filewriter[wrtrlib]",
 			   "datatype/common/util[dtutillib]",
                            "client/videosvc[vidsvclib]",
 			)

Index: HXMediaRecorder.cpp
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/HXMediaRecorder.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- HXMediaRecorder.cpp	15 Jun 2009 19:57:24 -0000	1.1
+++ HXMediaRecorder.cpp	28 Jul 2009 21:05:18 -0000	1.2
@@ -75,7 +75,7 @@
     }
     else
     {
-	LOGE("Could not create HXRecorderDriver");
+	LOGE("Out of memory. Could not create HXRecorderDriver");
     }
 }
 
@@ -96,7 +96,7 @@
         return UNKNOWN_ERROR;
     }
 
-    return m_pRecorderDriver->enqueueCommand(new RecorderInit(0,0));
+    return m_pRecorderDriver->handleInit();
 }
 
 status_t HXMediaRecorder::setAudioSource(audio_source as)
@@ -197,8 +197,10 @@
     LOGD("STOP");
     // After stopping record, return to the init state
     m_pRecorderDriver->enqueueCommand(new RecorderStop(0,0));  // Stop recording
-    reset();// Clear record settings
-    close(); // Close camera and mic
+    // Clear record settings
+    m_pRecorderDriver->enqueueCommand(new RecorderReset(0,0));
+    // Close camera and mic
+    m_pRecorderDriver->enqueueCommand(new RecorderClose(0,0));
 
     return OK;
 }

Index: hxrecorderdriver.cpp
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/hxrecorderdriver.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- hxrecorderdriver.cpp	15 Jun 2009 19:57:24 -0000	1.1
+++ hxrecorderdriver.cpp	28 Jul 2009 21:05:18 -0000	1.2
@@ -57,55 +57,22 @@
 #include 
 
 #include "hxtypes.h"
-#include "ihxmedpltfm.h"
-#include "hxcom.h"
-#include "hxcomm.h"
-#include "hxcore.h"
-#include "hxclsnk.h"
-#include "hxerror.h"
-#include "hxprefs.h"
-#include "hxstrutl.h"
[...1481 lines suppressed...]
-        if (m_bClientCamera)
-	{
-            m_spCamera->unlock();
-        }
-	else
-	{
-            m_spCamera->disconnect();
-        }
+    // Set the terminated flag
+    m_bTerminated = TRUE;
 
-        m_bCameraPreviewEnabled = FALSE;
-        m_bClientCamera = FALSE;
-        m_spCamera.clear();
-    }
-    LOGD("END closeVideoRecord");
-    return OK;
+    return HXR_OK;
 }
 

Index: guids.cpp
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/guids.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- guids.cpp	15 Jun 2009 19:57:24 -0000	1.1
+++ guids.cpp	28 Jul 2009 21:05:18 -0000	1.2
@@ -52,6 +52,7 @@
 #include "hxccf.h"
 
 #include "ihxdownloadmgr.h"
+#include "hxdtdr.h"
 
 #include "hxiids.h"
 #include "hxpiids.h"


From cbailey at helixcommunity.org  Tue Jul 28 14:05:21 2009
From: cbailey at helixcommunity.org (cbailey@helixcommunity.org)
Date: Tue Jul 28 19:31:05 2009
Subject: [Player-cvs] kit/android/recorder/pub hxrecorderdriver.h,1.1,1.2
Message-ID: 

Update of /cvsroot/player/kit/android/recorder/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv11546/pub

Modified Files:
	hxrecorderdriver.h 
Log Message:
Rearchitected recorder check in. Using dtdrive plugin, android is now a part of capture device discovery.

Index: hxrecorderdriver.h
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/pub/hxrecorderdriver.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- hxrecorderdriver.h	15 Jun 2009 19:57:25 -0000	1.1
+++ hxrecorderdriver.h	28 Jul 2009 21:05:18 -0000	1.2
@@ -65,45 +65,28 @@
 #ifndef _RECORDERDRIVER_H
 #define _RECORDERDRIVER_H
 
-#include 
+#include 
 #include 
 #include 
 #include 
 #include 
+
 #include "hxresult.h"
 #include "hxtypes.h"
 #include "ihxmedpltfm.h"
-#include "hxcom.h"
-#include "hxcomm.h"
-#include "hxcore.h"
-#include "hxclsnk.h"
-#include "hxerror.h"
-#include "hxprefs.h"
-#include "hxstrutl.h"
 #include "dllpath.h"
 #include "dllacces.h"
 
 #include "hxplatformobj.h"
-
-#include "hxthread.h"
-#include "thrdutil.h"
-#include "hxcbobj.h"
-
-//#include "hxencodesvc.h"
 #include "hlxclib/stdio.h"
 #include "hlxclib/stdarg.h"
-
 #include "minicntx.h"
-#include "hxmemprb.h"
-#include "hxsrcin.h"
-#include "hxformt.h"
-#include "hxfiles.h"
-#include "hxfwrtr.h"
-#include "hxengin.h"
-#include "hxslist.h"
+#include "hxdtdr.h"
 
 using namespace android;
 
+//extern sp     m_spCamera;
+//extern sp   m_spSurface;
 
 // Commands that MediaRecorder sends to the HelixRecorder
 class RecorderCommand
@@ -224,7 +207,8 @@
 /////////////////////////////////////////////
 // HXRecorderDriver class
 /////////////////////////////////////////////
-class HXRecorderDriver: public IHXFileWriterMonitor
+class HXRecorderDriver : public IHXDataTypeDriverResponse
+
 {
 public:
     HXRecorderDriver(HXMediaRecorder* pRecorder);
@@ -235,12 +219,9 @@
     STDMETHOD_(ULONG32,AddRef)	(THIS);
     STDMETHOD_(ULONG32,Release)	(THIS);
 
-    // IHXFileWriterMonitor methods
-    STDMETHOD(OnStatus)			(THIS_ HX_RESULT status, IHXValues* pInfoList); 
-    STDMETHOD(OnVolumeInitiation)	(THIS_ HX_RESULT status, const char* pFileName, REF(ULONG32) ulTag); 
-    STDMETHOD(OnPacketsReady)		(THIS_ HX_RESULT status); 
-    STDMETHOD(OnVolumeCompletion)	(THIS_ HX_RESULT status, ULONG32 ulTag);
-    STDMETHOD(OnCompletion)		(THIS_ HX_RESULT status);
+    // IHXDataTypeDriverResponse methods
+    STDMETHOD(OnProgress)  (THIS_ UINT32 ulProgress);
+    STDMETHOD(OnTerminate) (THIS_ HX_RESULT result);
 
     void SetBitsPerSample(UINT32 ulBitsPerSample) { m_ulBitsPerSample = ulBitsPerSample; }
     void SetNumChannels(UINT32 ulNumChannels) { m_ulNumChannels = ulNumChannels; }
@@ -256,11 +237,12 @@
 
     // Setup helix
     HX_RESULT   InitHelixMediaPlatform();
+    HX_RESULT   InitDtDriver();
 
     // Handlers for the various commands we can accept.
     void        commandCompleted(RecorderCommand* ec);
 
-    status_t    handleInit(RecorderInit* ec);
+    status_t    handleInit();
     status_t    handleSetCamera(RecorderSetCamera* ec);
     status_t    handleSetPreviewSurface(RecorderSetPreviewSurface* ec);
     status_t    handleSetParameters(RecorderSetParameters* ec);
@@ -303,29 +285,23 @@
     HXMediaRecorder*            m_pMediaRecorder;
     status_t                    m_SyncStatus;
 
-    bool                        m_bDataReadyReceived;
-    bool                        m_bPrepareDone;
-    bool                        m_bEndOfData;
-    status_t                    m_Init;
+    sp         m_spCamera;
+    sp       m_spSurface;
     UINT32                      m_ulFrameRate;
     UINT32                      m_ulVideoWidth;
     UINT32                      m_ulVideoHeight;
     UINT32                      m_ulMaxAmplitude;
+    CHXString                   m_strInputFileName;
     CHXString                   m_strOutputFileName;
     CHXString                   m_strOutputExt;
-#if defined(WRITE_WAV_FILE)
-    CHXString                   m_strOutputWAVFile;
-#endif
     int                         m_fd;
     int64_t                     m_offset;
     int64_t                     m_length;
 
     // Command queue and its lock.
-    List        m_CommandQueue;
+    List      m_CommandQueue;
     Mutex                       m_QueueLock;
     IHXScheduler*               m_pScheduler;
-    android::AudioRecord*       m_pRecord;
-    IHXClientState*             m_pClientState;
 
     // helix thread
     HXEvent*                    m_pEvent;
@@ -339,40 +315,9 @@
     void                        CleanupMediaPlatform();
     status_t			_reset();
 
-    AudioRecord*        m_pAudioRecord;
-
-    status_t   openAudioRecord();
-    status_t   startAudioRecord();
-    status_t   startVideoRecord();
-    status_t   stopAudioRecord();
-    status_t   stopVideoRecord();
-    status_t   closeAudioRecord();
-    status_t   closeVideoRecord();
-    status_t   initVideo();
-
-
-    HX_RESULT WritePacket(IHXPacket *pPacket);
-    HX_RESULT FlushWriterPacketQueue(void);
-    HX_RESULT CreateWriterProps(IHXValues* &pWriterProps);
-    HX_RESULT CreateAudioPacket(BYTE* pSampleBuffer, UINT32 ulSampleSize, IHXPacket*& rpPacket);
-    HX_RESULT SendPacket(BYTE* pSampleBuffer, UINT32 ulSampleSize);
-    void PacketsDone();
-    void StartPackets();
-    HX_RESULT GetAudioStreamHeader(REF(IHXValues*) rpHdr);
-    HX_RESULT GetVideoStreamHeader(REF(IHXValues*) rpHdr);
-    HX_RESULT setupFileWriter();
-    void SwapAudio16BitSamplesInPlace(BYTE* pBuf, UINT32 ulLen);
-
     LONG32			m_lRefCount;
     IHXCommonClassFactory*	m_pCCF;
-    MiniContext*		m_pContext;
-    IHXFileWriter*		m_pFileWriter;
-    CHXSimpleList		m_WriterPacketQueue;
-    HXBOOL			m_bPacketsReady;
-    HXBOOL			m_bSwapAudio;
-    BYTE			m_ulLastByte;
     IHXMediaPlatform*		m_pMediaPlatform;
-    UINT32			m_ulTimestamp;
 
     UINT32                 m_ulNumChannels;
     UINT32                 m_ulBitsPerSample;
@@ -383,16 +328,16 @@
     UINT32                 m_ulColorFormat;
 
     // Video 
-    sp     m_spCamera;
-    sp   m_spSurface;
     UINT32                   m_ulSurfaceWidth;
     UINT32                   m_ulSurfaceHeight;
     UINT32                   m_ulFrameWidth;
     UINT32                   m_ulFrameHeight;
-    sp         m_spHeap;
     UINT32                   m_ulFrameRefCount;
     HXBOOL		    m_bCameraPreviewEnabled;
     HXBOOL		    m_bClientCamera;
+    HXBOOL		    m_bHasAudio;
+    HXBOOL		    m_bHasVideo;
+    HXBOOL		    m_bTerminated;
 
     enum _cameraFlags {
         FLAGS_SET_CAMERA        = 1L << 0,
@@ -400,6 +345,19 @@
     };
 
 
+    IHXDataTypeDriver2*        m_pDriver;
+    IHXDataTypeDriverResponse* m_pResponse;
+    IHXValues*                 m_pOptions;
+    CHXString			m_strAudioEncoder;
+    CHXString			m_strVideoEncoder;
+
+    HX_RESULT	initDriver();
+    HX_RESULT	prepareDriver();
+    HX_RESULT	startDriver();
+    HX_RESULT	stopDriver();
+    HX_RESULT	pauseDriver();
+    HX_RESULT	resumeDriver();
+    HX_RESULT	closeDriver();
 
 };
 


From cbailey at helixcommunity.org  Tue Jul 28 14:05:21 2009
From: cbailey at helixcommunity.org (cbailey@helixcommunity.org)
Date: Tue Jul 28 19:31:05 2009
Subject: [Player-cvs] kit/android/recorder/pub hxrecorderdriver.h,1.1,1.2
Message-ID: 

Update of /cvsroot/player/kit/android/recorder/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv11546/pub

Modified Files:
	hxrecorderdriver.h 
Log Message:
Rearchitected recorder check in. Using dtdrive plugin, android is now a part of capture device discovery.

Index: hxrecorderdriver.h
===================================================================
RCS file: /cvsroot/player/kit/android/recorder/pub/hxrecorderdriver.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- hxrecorderdriver.h	15 Jun 2009 19:57:25 -0000	1.1
+++ hxrecorderdriver.h	28 Jul 2009 21:05:18 -0000	1.2
@@ -65,45 +65,28 @@
 #ifndef _RECORDERDRIVER_H
 #define _RECORDERDRIVER_H
 
-#include 
+#include 
 #include 
 #include 
 #include 
 #include 
+
 #include "hxresult.h"
 #include "hxtypes.h"
 #include "ihxmedpltfm.h"
-#include "hxcom.h"
-#include "hxcomm.h"
-#include "hxcore.h"
-#include "hxclsnk.h"
-#include "hxerror.h"
-#include "hxprefs.h"
-#include "hxstrutl.h"
 #include "dllpath.h"
 #include "dllacces.h"
 
 #include "hxplatformobj.h"
-
-#include "hxthread.h"
-#include "thrdutil.h"
-#include "hxcbobj.h"
-
-//#include "hxencodesvc.h"
 #include "hlxclib/stdio.h"
 #include "hlxclib/stdarg.h"
-
 #include "minicntx.h"
-#include "hxmemprb.h"
-#include "hxsrcin.h"
-#include "hxformt.h"
-#include "hxfiles.h"
-#include "hxfwrtr.h"
-#include "hxengin.h"
-#include "hxslist.h"
+#include "hxdtdr.h"
 
 using namespace android;
 
+//extern sp     m_spCamera;
+//extern sp   m_spSurface;
 
 // Commands that MediaRecorder sends to the HelixRecorder
 class RecorderCommand
@@ -224,7 +207,8 @@
 /////////////////////////////////////////////
 // HXRecorderDriver class
 /////////////////////////////////////////////
-class HXRecorderDriver: public IHXFileWriterMonitor
+class HXRecorderDriver : public IHXDataTypeDriverResponse
+
 {
 public:
     HXRecorderDriver(HXMediaRecorder* pRecorder);
@@ -235,12 +219,9 @@
     STDMETHOD_(ULONG32,AddRef)	(THIS);
     STDMETHOD_(ULONG32,Release)	(THIS);
 
-    // IHXFileWriterMonitor methods
-    STDMETHOD(OnStatus)			(THIS_ HX_RESULT status, IHXValues* pInfoList); 
-    STDMETHOD(OnVolumeInitiation)	(THIS_ HX_RESULT status, const char* pFileName, REF(ULONG32) ulTag); 
-    STDMETHOD(OnPacketsReady)		(THIS_ HX_RESULT status); 
-    STDMETHOD(OnVolumeCompletion)	(THIS_ HX_RESULT status, ULONG32 ulTag);
-    STDMETHOD(OnCompletion)		(THIS_ HX_RESULT status);
+    // IHXDataTypeDriverResponse methods
+    STDMETHOD(OnProgress)  (THIS_ UINT32 ulProgress);
+    STDMETHOD(OnTerminate) (THIS_ HX_RESULT result);
 
     void SetBitsPerSample(UINT32 ulBitsPerSample) { m_ulBitsPerSample = ulBitsPerSample; }
     void SetNumChannels(UINT32 ulNumChannels) { m_ulNumChannels = ulNumChannels; }
@@ -256,11 +237,12 @@
 
     // Setup helix
     HX_RESULT   InitHelixMediaPlatform();
+    HX_RESULT   InitDtDriver();
 
     // Handlers for the various commands we can accept.
     void        commandCompleted(RecorderCommand* ec);
 
-    status_t    handleInit(RecorderInit* ec);
+    status_t    handleInit();
     status_t    handleSetCamera(RecorderSetCamera* ec);
     status_t    handleSetPreviewSurface(RecorderSetPreviewSurface* ec);
     status_t    handleSetParameters(RecorderSetParameters* ec);
@@ -303,29 +285,23 @@
     HXMediaRecorder*            m_pMediaRecorder;
     status_t                    m_SyncStatus;
 
-    bool                        m_bDataReadyReceived;
-    bool                        m_bPrepareDone;
-    bool                        m_bEndOfData;
-    status_t                    m_Init;
+    sp         m_spCamera;
+    sp       m_spSurface;
     UINT32                      m_ulFrameRate;
     UINT32                      m_ulVideoWidth;
     UINT32                      m_ulVideoHeight;
     UINT32                      m_ulMaxAmplitude;
+    CHXString                   m_strInputFileName;
     CHXString                   m_strOutputFileName;
     CHXString                   m_strOutputExt;
-#if defined(WRITE_WAV_FILE)
-    CHXString                   m_strOutputWAVFile;
-#endif
     int                         m_fd;
     int64_t                     m_offset;
     int64_t                     m_length;
 
     // Command queue and its lock.
-    List        m_CommandQueue;
+    List      m_CommandQueue;
     Mutex                       m_QueueLock;
     IHXScheduler*               m_pScheduler;
-    android::AudioRecord*       m_pRecord;
-    IHXClientState*             m_pClientState;
 
     // helix thread
     HXEvent*                    m_pEvent;
@@ -339,40 +315,9 @@
     void                        CleanupMediaPlatform();
     status_t			_reset();
 
-    AudioRecord*        m_pAudioRecord;
-
-    status_t   openAudioRecord();
-    status_t   startAudioRecord();
-    status_t   startVideoRecord();
-    status_t   stopAudioRecord();
-    status_t   stopVideoRecord();
-    status_t   closeAudioRecord();
-    status_t   closeVideoRecord();
-    status_t   initVideo();
-
-
-    HX_RESULT WritePacket(IHXPacket *pPacket);
-    HX_RESULT FlushWriterPacketQueue(void);
-    HX_RESULT CreateWriterProps(IHXValues* &pWriterProps);
-    HX_RESULT CreateAudioPacket(BYTE* pSampleBuffer, UINT32 ulSampleSize, IHXPacket*& rpPacket);
-    HX_RESULT SendPacket(BYTE* pSampleBuffer, UINT32 ulSampleSize);
-    void PacketsDone();
-    void StartPackets();
-    HX_RESULT GetAudioStreamHeader(REF(IHXValues*) rpHdr);
-    HX_RESULT GetVideoStreamHeader(REF(IHXValues*) rpHdr);
-    HX_RESULT setupFileWriter();
-    void SwapAudio16BitSamplesInPlace(BYTE* pBuf, UINT32 ulLen);
-
     LONG32			m_lRefCount;
     IHXCommonClassFactory*	m_pCCF;
-    MiniContext*		m_pContext;
-    IHXFileWriter*		m_pFileWriter;
-    CHXSimpleList		m_WriterPacketQueue;
-    HXBOOL			m_bPacketsReady;
-    HXBOOL			m_bSwapAudio;
-    BYTE			m_ulLastByte;
     IHXMediaPlatform*		m_pMediaPlatform;
-    UINT32			m_ulTimestamp;
 
     UINT32                 m_ulNumChannels;
     UINT32                 m_ulBitsPerSample;
@@ -383,16 +328,16 @@
     UINT32                 m_ulColorFormat;
 
     // Video 
-    sp     m_spCamera;
-    sp   m_spSurface;
     UINT32                   m_ulSurfaceWidth;
     UINT32                   m_ulSurfaceHeight;
     UINT32                   m_ulFrameWidth;
     UINT32                   m_ulFrameHeight;
-    sp         m_spHeap;
     UINT32                   m_ulFrameRefCount;
     HXBOOL		    m_bCameraPreviewEnabled;
     HXBOOL		    m_bClientCamera;
+    HXBOOL		    m_bHasAudio;
+    HXBOOL		    m_bHasVideo;
+    HXBOOL		    m_bTerminated;
 
     enum _cameraFlags {
         FLAGS_SET_CAMERA        = 1L << 0,
@@ -400,6 +345,19 @@
     };
 
 
+    IHXDataTypeDriver2*        m_pDriver;
+    IHXDataTypeDriverResponse* m_pResponse;
+    IHXValues*                 m_pOptions;
+    CHXString			m_strAudioEncoder;
+    CHXString			m_strVideoEncoder;
+
+    HX_RESULT	initDriver();
+    HX_RESULT	prepareDriver();
+    HX_RESULT	startDriver();
+    HX_RESULT	stopDriver();
+    HX_RESULT	pauseDriver();
+    HX_RESULT	resumeDriver();
+    HX_RESULT	closeDriver();
 
 };
 


From cbailey at helixcommunity.org  Tue Jul 28 14:27:45 2009
From: cbailey at helixcommunity.org (cbailey@helixcommunity.org)
Date: Tue Jul 28 19:53:20 2009
Subject: [Player-cvs] kit/android/android_patch android1.5_patch.log, 1.1,
	1.2
Message-ID: 

Update of /cvsroot/player/kit/android/android_patch
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv15382

Modified Files:
	android1.5_patch.log 
Log Message:


Index: android1.5_patch.log
===================================================================
RCS file: /cvsroot/player/kit/android/android_patch/android1.5_patch.log,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- android1.5_patch.log	15 Jun 2009 20:49:17 -0000	1.1
+++ android1.5_patch.log	28 Jul 2009 21:27:43 -0000	1.2
@@ -50,6 +50,61 @@
  };
  
  #define DEFAULT_AUDIOSINK_BUFFERCOUNT 4
+diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h
+index b9ea0c6..c6ad636 100644
+--- a/include/media/mediarecorder.h
++++ b/include/media/mediarecorder.h
+@@ -48,12 +48,19 @@ enum output_format {
+     OUTPUT_FORMAT_THREE_GPP,
+     OUTPUT_FORMAT_MPEG_4,
+     OUTPUT_FORMAT_RAW_AMR,
++    OUTPUT_FORMAT_REAL_MEDIA,
++    OUTPUT_FORMAT_MPEG_3,
++    OUTPUT_FORMAT_AAC,
++    OUTPUT_FORMAT_WAV,
+     OUTPUT_FORMAT_LIST_END // must be last - used to validate format type
+ };
+ 
+ enum audio_encoder {
+     AUDIO_ENCODER_DEFAULT = 0,
+     AUDIO_ENCODER_AMR_NB = 1,
++    AUDIO_ENCODER_COOK = 2,
++    AUDIO_ENCODER_SIPR = 3,
++    AUDIO_ENCODER_NONE = 4
+ };
+ 
+ enum video_encoder {
+@@ -61,6 +68,11 @@ enum video_encoder {
+     VIDEO_ENCODER_H263 = 1,
+     VIDEO_ENCODER_H264 = 2,
+     VIDEO_ENCODER_MPEG_4_SP = 3,
++    VIDEO_ENCODER_RV6 = 4,
++    VIDEO_ENCODER_RV8 = 5,
++    VIDEO_ENCODER_RV9 = 6,
++    VIDEO_ENCODER_RV10 = 7,
++    VIDEO_ENCODER_NONE = 8
+ };
+ 
+ // Maximum frames per second is 24
+diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
+index 5d90e62..15897b0 100644
+--- a/media/java/android/media/MediaRecorder.java
++++ b/media/java/android/media/MediaRecorder.java
+@@ -157,6 +157,14 @@ public class MediaRecorder
+         public static final int MPEG_4 = 2;
+         /** Raw AMR file format */
+         public static final int RAW_AMR = 3;
++        /** Real Media file format */
++        public static final int REAL_MEDIA = 4;
++        /** MPEG3 media file format*/
++        public static final int MPEG_3 = 5;
++        /** AAC media file format*/
++        public static final int AAC = 6;
++        /** WAV media file format*/
++        public static final int WAV = 7;
+     };
+ 
+     /**
 diff --git a/media/libmediaplayerservice/Android.mk b/media/libmediaplayerservice/Android.mk
 index f710921..7a15ee3 100644
 --- a/media/libmediaplayerservice/Android.mk


From cbailey at helixcommunity.org  Tue Jul 28 14:27:45 2009
From: cbailey at helixcommunity.org (cbailey@helixcommunity.org)
Date: Tue Jul 28 19:53:21 2009
Subject: [Player-cvs] kit/android/android_patch android1.5_patch.log, 1.1,
	1.2
Message-ID: 

Update of /cvsroot/player/kit/android/android_patch
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv15382

Modified Files:
	android1.5_patch.log 
Log Message:


Index: android1.5_patch.log
===================================================================
RCS file: /cvsroot/player/kit/android/android_patch/android1.5_patch.log,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- android1.5_patch.log	15 Jun 2009 20:49:17 -0000	1.1
+++ android1.5_patch.log	28 Jul 2009 21:27:43 -0000	1.2
@@ -50,6 +50,61 @@
  };
  
  #define DEFAULT_AUDIOSINK_BUFFERCOUNT 4
+diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h
+index b9ea0c6..c6ad636 100644
+--- a/include/media/mediarecorder.h
++++ b/include/media/mediarecorder.h
+@@ -48,12 +48,19 @@ enum output_format {
+     OUTPUT_FORMAT_THREE_GPP,
+     OUTPUT_FORMAT_MPEG_4,
+     OUTPUT_FORMAT_RAW_AMR,
++    OUTPUT_FORMAT_REAL_MEDIA,
++    OUTPUT_FORMAT_MPEG_3,
++    OUTPUT_FORMAT_AAC,
++    OUTPUT_FORMAT_WAV,
+     OUTPUT_FORMAT_LIST_END // must be last - used to validate format type
+ };
+ 
+ enum audio_encoder {
+     AUDIO_ENCODER_DEFAULT = 0,
+     AUDIO_ENCODER_AMR_NB = 1,
++    AUDIO_ENCODER_COOK = 2,
++    AUDIO_ENCODER_SIPR = 3,
++    AUDIO_ENCODER_NONE = 4
+ };
+ 
+ enum video_encoder {
+@@ -61,6 +68,11 @@ enum video_encoder {
+     VIDEO_ENCODER_H263 = 1,
+     VIDEO_ENCODER_H264 = 2,
+     VIDEO_ENCODER_MPEG_4_SP = 3,
++    VIDEO_ENCODER_RV6 = 4,
++    VIDEO_ENCODER_RV8 = 5,
++    VIDEO_ENCODER_RV9 = 6,
++    VIDEO_ENCODER_RV10 = 7,
++    VIDEO_ENCODER_NONE = 8
+ };
+ 
+ // Maximum frames per second is 24
+diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
+index 5d90e62..15897b0 100644
+--- a/media/java/android/media/MediaRecorder.java
++++ b/media/java/android/media/MediaRecorder.java
+@@ -157,6 +157,14 @@ public class MediaRecorder
+         public static final int MPEG_4 = 2;
+         /** Raw AMR file format */
+         public static final int RAW_AMR = 3;
++        /** Real Media file format */
++        public static final int REAL_MEDIA = 4;
++        /** MPEG3 media file format*/
++        public static final int MPEG_3 = 5;
++        /** AAC media file format*/
++        public static final int AAC = 6;
++        /** WAV media file format*/
++        public static final int WAV = 7;
+     };
+ 
+     /**
 diff --git a/media/libmediaplayerservice/Android.mk b/media/libmediaplayerservice/Android.mk
 index f710921..7a15ee3 100644
 --- a/media/libmediaplayerservice/Android.mk


From vkathuria at helixcommunity.org  Thu Jul 30 04:20:07 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 09:45:26 2009
Subject: [Player-cvs] installer/archive make_tempdir,1.77.2.44,1.77.2.45
Message-ID: 

Update of /cvsroot/player/installer/archive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv28252

Modified Files:
      Tag: hxclient_3_1_0_atlas
	make_tempdir 
Log Message:
Changes to copy gif & bmp render into realplayer package

Index: make_tempdir
===================================================================
RCS file: /cvsroot/player/installer/archive/make_tempdir,v
retrieving revision 1.77.2.44
retrieving revision 1.77.2.45
diff -u -d -r1.77.2.44 -r1.77.2.45
--- make_tempdir	26 May 2009 10:44:53 -0000	1.77.2.44
+++ make_tempdir	30 Jul 2009 11:20:04 -0000	1.77.2.45
@@ -214,19 +214,18 @@
 inst.CopyModuleDlls(
     ("datatype/smil/fileformat", "smlfformat", "smlfformat"),
     ("datatype/smil/renderer", "smlrender", "smlrender"),
-    # ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
-    ("datatype/group/image", "imgrender", "imgrender"))
-
-    #("datatype/image/gif/fileformat", "giffformat", "giffformat"),
-    #("datatype/image/gif/renderer", "gifrender", "gifrender"),
+    ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
+    ("datatype/group/image", "imgrender", "imgrender"),
+    ("datatype/image/gif/fileformat", "giffformat", "giffformat"),
+    ("datatype/image/gif/renderer", "gifrender", "gifrender"),
     #("datatype/image/jpg/fileformat", "jpgfformat", "jpgfformat"),
     #("datatype/image/jpg/renderer", "jpgrender", "jpgrender"),
     #("datatype/image/png/fileformat", "pngfformat", "pngfformat"),
     #("datatype/image/png/renderer", "pngrender", "pngrender"),
     #("datatype/image/wbmp/fileformat", "wbmpfformat", "wbmpfformat"),
     #("datatype/image/wbmp/renderer", "wbmprend", "wbmprend"),
-    #("datatype/image/bmp/renderer", "bmprend", "bmprend"),
-    #("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
+    ("datatype/image/bmp/renderer", "bmprend", "bmprend"),
+    ("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
 
 # RealPix should all be in imgrender.so already.
 #inst.CopyModuleDlls(


From vkathuria at helixcommunity.org  Thu Jul 30 04:20:07 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 09:45:27 2009
Subject: [Player-cvs] installer/archive make_tempdir,1.77.2.44,1.77.2.45
Message-ID: 

Update of /cvsroot/player/installer/archive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv28252

Modified Files:
      Tag: hxclient_3_1_0_atlas
	make_tempdir 
Log Message:
Changes to copy gif & bmp render into realplayer package

Index: make_tempdir
===================================================================
RCS file: /cvsroot/player/installer/archive/make_tempdir,v
retrieving revision 1.77.2.44
retrieving revision 1.77.2.45
diff -u -d -r1.77.2.44 -r1.77.2.45
--- make_tempdir	26 May 2009 10:44:53 -0000	1.77.2.44
+++ make_tempdir	30 Jul 2009 11:20:04 -0000	1.77.2.45
@@ -214,19 +214,18 @@
 inst.CopyModuleDlls(
     ("datatype/smil/fileformat", "smlfformat", "smlfformat"),
     ("datatype/smil/renderer", "smlrender", "smlrender"),
-    # ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
-    ("datatype/group/image", "imgrender", "imgrender"))
-
-    #("datatype/image/gif/fileformat", "giffformat", "giffformat"),
-    #("datatype/image/gif/renderer", "gifrender", "gifrender"),
+    ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
+    ("datatype/group/image", "imgrender", "imgrender"),
+    ("datatype/image/gif/fileformat", "giffformat", "giffformat"),
+    ("datatype/image/gif/renderer", "gifrender", "gifrender"),
     #("datatype/image/jpg/fileformat", "jpgfformat", "jpgfformat"),
     #("datatype/image/jpg/renderer", "jpgrender", "jpgrender"),
     #("datatype/image/png/fileformat", "pngfformat", "pngfformat"),
     #("datatype/image/png/renderer", "pngrender", "pngrender"),
     #("datatype/image/wbmp/fileformat", "wbmpfformat", "wbmpfformat"),
     #("datatype/image/wbmp/renderer", "wbmprend", "wbmprend"),
-    #("datatype/image/bmp/renderer", "bmprend", "bmprend"),
-    #("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
+    ("datatype/image/bmp/renderer", "bmprend", "bmprend"),
+    ("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
 
 # RealPix should all be in imgrender.so already.
 #inst.CopyModuleDlls(


From vkathuria at helixcommunity.org  Thu Jul 30 04:32:08 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 09:57:29 2009
Subject: [Player-cvs] netbook/medialib/platform/unix gtkmedialibrary.cpp,
	1.1.2.26, 1.1.2.27
Message-ID: 

Update of /cvsroot/player/netbook/medialib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv29790

Modified Files:
      Tag: hxclient_3_1_0_atlas
	gtkmedialibrary.cpp 
Log Message:
Change to add support for bmp in scan for media

Index: gtkmedialibrary.cpp
===================================================================
RCS file: /cvsroot/player/netbook/medialib/platform/unix/Attic/gtkmedialibrary.cpp,v
retrieving revision 1.1.2.26
retrieving revision 1.1.2.27
diff -u -d -r1.1.2.26 -r1.1.2.27
--- gtkmedialibrary.cpp	3 Mar 2009 12:32:16 -0000	1.1.2.26
+++ gtkmedialibrary.cpp	30 Jul 2009 11:32:04 -0000	1.1.2.27
@@ -60,7 +60,7 @@
 #define MAX_DIR_DEPTH 20
 const char* g_videoext[]={".mpg", ".mpeg", ".mp4", ".3gp", ".rm", ".rmvb", ".wmv", ".avi", ".divx", ".mov", ".ram", NULL};
 const char* g_audioext[]={".mp3", ".wav", ".wma", ".aac", ".m4a", ".ogg", ".ra", ".amr", NULL};
-const char* g_photoext[5]={".jpg",".jpeg",".gif", ".png", NULL};	   //Need to add all the supported image type
+const char* g_photoext[]={".jpg",".jpeg",".gif", ".png",".bmp", NULL};	   //Need to add all the supported image type
 
 
 


From vkathuria at helixcommunity.org  Thu Jul 30 04:32:09 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 09:57:30 2009
Subject: [Player-cvs] netbook/medialib/platform/unix gtkmedialibrary.cpp,
	1.1.2.26, 1.1.2.27
Message-ID: 

Update of /cvsroot/player/netbook/medialib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv29790

Modified Files:
      Tag: hxclient_3_1_0_atlas
	gtkmedialibrary.cpp 
Log Message:
Change to add support for bmp in scan for media

Index: gtkmedialibrary.cpp
===================================================================
RCS file: /cvsroot/player/netbook/medialib/platform/unix/Attic/gtkmedialibrary.cpp,v
retrieving revision 1.1.2.26
retrieving revision 1.1.2.27
diff -u -d -r1.1.2.26 -r1.1.2.27
--- gtkmedialibrary.cpp	3 Mar 2009 12:32:16 -0000	1.1.2.26
+++ gtkmedialibrary.cpp	30 Jul 2009 11:32:04 -0000	1.1.2.27
@@ -60,7 +60,7 @@
 #define MAX_DIR_DEPTH 20
 const char* g_videoext[]={".mpg", ".mpeg", ".mp4", ".3gp", ".rm", ".rmvb", ".wmv", ".avi", ".divx", ".mov", ".ram", NULL};
 const char* g_audioext[]={".mp3", ".wav", ".wma", ".aac", ".m4a", ".ogg", ".ra", ".amr", NULL};
-const char* g_photoext[5]={".jpg",".jpeg",".gif", ".png", NULL};	   //Need to add all the supported image type
+const char* g_photoext[]={".jpg",".jpeg",".gif", ".png",".bmp", NULL};	   //Need to add all the supported image type
 
 
 


From vkathuria at helixcommunity.org  Thu Jul 30 04:37:55 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:03:15 2009
Subject: [Player-cvs] installer/archive make_tempdir, 1.77.2.37.2.6,
	1.77.2.37.2.7
Message-ID: 

Update of /cvsroot/player/installer/archive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31251

Modified Files:
      Tag: hxclient_3_4_7_atlas
	make_tempdir 
Log Message:
Changes to copy gif & bmp render into realplayer package

Index: make_tempdir
===================================================================
RCS file: /cvsroot/player/installer/archive/make_tempdir,v
retrieving revision 1.77.2.37.2.6
retrieving revision 1.77.2.37.2.7
diff -u -d -r1.77.2.37.2.6 -r1.77.2.37.2.7
--- make_tempdir	7 Apr 2009 11:01:37 -0000	1.77.2.37.2.6
+++ make_tempdir	30 Jul 2009 11:37:48 -0000	1.77.2.37.2.7
@@ -215,19 +215,18 @@
 inst.CopyModuleDlls(
     ("datatype/smil/fileformat", "smlfformat", "smlfformat"),
     ("datatype/smil/renderer", "smlrender", "smlrender"),
-    # ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
-    ("datatype/group/image", "imgrender", "imgrender"))
-
-    #("datatype/image/gif/fileformat", "giffformat", "giffformat"),
-    #("datatype/image/gif/renderer", "gifrender", "gifrender"),
+    ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
+    ("datatype/group/image", "imgrender", "imgrender"),
+    ("datatype/image/gif/fileformat", "giffformat", "giffformat"),
+    ("datatype/image/gif/renderer", "gifrender", "gifrender"),
     #("datatype/image/jpg/fileformat", "jpgfformat", "jpgfformat"),
     #("datatype/image/jpg/renderer", "jpgrender", "jpgrender"),
     #("datatype/image/png/fileformat", "pngfformat", "pngfformat"),
     #("datatype/image/png/renderer", "pngrender", "pngrender"),
     #("datatype/image/wbmp/fileformat", "wbmpfformat", "wbmpfformat"),
     #("datatype/image/wbmp/renderer", "wbmprend", "wbmprend"),
-    #("datatype/image/bmp/renderer", "bmprend", "bmprend"),
-    #("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
+    ("datatype/image/bmp/renderer", "bmprend", "bmprend"),
+    ("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
 
 # RealPix should all be in imgrender.so already.
 #inst.CopyModuleDlls(


From vkathuria at helixcommunity.org  Thu Jul 30 04:37:55 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:03:15 2009
Subject: [Player-cvs] installer/archive make_tempdir, 1.77.2.37.2.6,
	1.77.2.37.2.7
Message-ID: 

Update of /cvsroot/player/installer/archive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31251

Modified Files:
      Tag: hxclient_3_4_7_atlas
	make_tempdir 
Log Message:
Changes to copy gif & bmp render into realplayer package

Index: make_tempdir
===================================================================
RCS file: /cvsroot/player/installer/archive/make_tempdir,v
retrieving revision 1.77.2.37.2.6
retrieving revision 1.77.2.37.2.7
diff -u -d -r1.77.2.37.2.6 -r1.77.2.37.2.7
--- make_tempdir	7 Apr 2009 11:01:37 -0000	1.77.2.37.2.6
+++ make_tempdir	30 Jul 2009 11:37:48 -0000	1.77.2.37.2.7
@@ -215,19 +215,18 @@
 inst.CopyModuleDlls(
     ("datatype/smil/fileformat", "smlfformat", "smlfformat"),
     ("datatype/smil/renderer", "smlrender", "smlrender"),
-    # ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
-    ("datatype/group/image", "imgrender", "imgrender"))
-
-    #("datatype/image/gif/fileformat", "giffformat", "giffformat"),
-    #("datatype/image/gif/renderer", "gifrender", "gifrender"),
+    ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
+    ("datatype/group/image", "imgrender", "imgrender"),
+    ("datatype/image/gif/fileformat", "giffformat", "giffformat"),
+    ("datatype/image/gif/renderer", "gifrender", "gifrender"),
     #("datatype/image/jpg/fileformat", "jpgfformat", "jpgfformat"),
     #("datatype/image/jpg/renderer", "jpgrender", "jpgrender"),
     #("datatype/image/png/fileformat", "pngfformat", "pngfformat"),
     #("datatype/image/png/renderer", "pngrender", "pngrender"),
     #("datatype/image/wbmp/fileformat", "wbmpfformat", "wbmpfformat"),
     #("datatype/image/wbmp/renderer", "wbmprend", "wbmprend"),
-    #("datatype/image/bmp/renderer", "bmprend", "bmprend"),
-    #("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
+    ("datatype/image/bmp/renderer", "bmprend", "bmprend"),
+    ("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
 
 # RealPix should all be in imgrender.so already.
 #inst.CopyModuleDlls(


From vkathuria at helixcommunity.org  Thu Jul 30 04:39:31 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:04:51 2009
Subject: [Player-cvs] netbook/medialib/platform/unix gtkmedialibrary.cpp,
	1.1.2.25.2.1, 1.1.2.25.2.2
Message-ID: 

Update of /cvsroot/player/netbook/medialib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31463/platform/unix

Modified Files:
      Tag: hxclient_3_4_7_atlas
	gtkmedialibrary.cpp 
Log Message:
Change to add support for bmp in scan for media

Index: gtkmedialibrary.cpp
===================================================================
RCS file: /cvsroot/player/netbook/medialib/platform/unix/Attic/gtkmedialibrary.cpp,v
retrieving revision 1.1.2.25.2.1
retrieving revision 1.1.2.25.2.2
diff -u -d -r1.1.2.25.2.1 -r1.1.2.25.2.2
--- gtkmedialibrary.cpp	3 Mar 2009 12:30:50 -0000	1.1.2.25.2.1
+++ gtkmedialibrary.cpp	30 Jul 2009 11:39:27 -0000	1.1.2.25.2.2
@@ -60,7 +60,7 @@
 #define MAX_DIR_DEPTH 20
 const char* g_videoext[]={".mpg", ".mpeg", ".mp4", ".3gp", ".rm", ".rmvb", ".wmv", ".avi", ".divx", ".mov", ".ram", NULL};
 const char* g_audioext[]={".mp3", ".wav", ".wma", ".aac", ".m4a", ".ogg", ".ra", ".amr", NULL};
-const char* g_photoext[5]={".jpg",".jpeg",".gif", ".png", NULL};	   //Need to add all the supported image type
+const char* g_photoext[]={".jpg",".jpeg",".gif", ".png",".bmp", NULL};	   //Need to add all the supported image type
 
 
 


From vkathuria at helixcommunity.org  Thu Jul 30 04:39:31 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:04:51 2009
Subject: [Player-cvs] netbook/medialib/platform/unix gtkmedialibrary.cpp,
	1.1.2.25.2.1, 1.1.2.25.2.2
Message-ID: 

Update of /cvsroot/player/netbook/medialib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31463/platform/unix

Modified Files:
      Tag: hxclient_3_4_7_atlas
	gtkmedialibrary.cpp 
Log Message:
Change to add support for bmp in scan for media

Index: gtkmedialibrary.cpp
===================================================================
RCS file: /cvsroot/player/netbook/medialib/platform/unix/Attic/gtkmedialibrary.cpp,v
retrieving revision 1.1.2.25.2.1
retrieving revision 1.1.2.25.2.2
diff -u -d -r1.1.2.25.2.1 -r1.1.2.25.2.2
--- gtkmedialibrary.cpp	3 Mar 2009 12:30:50 -0000	1.1.2.25.2.1
+++ gtkmedialibrary.cpp	30 Jul 2009 11:39:27 -0000	1.1.2.25.2.2
@@ -60,7 +60,7 @@
 #define MAX_DIR_DEPTH 20
 const char* g_videoext[]={".mpg", ".mpeg", ".mp4", ".3gp", ".rm", ".rmvb", ".wmv", ".avi", ".divx", ".mov", ".ram", NULL};
 const char* g_audioext[]={".mp3", ".wav", ".wma", ".aac", ".m4a", ".ogg", ".ra", ".amr", NULL};
-const char* g_photoext[5]={".jpg",".jpeg",".gif", ".png", NULL};	   //Need to add all the supported image type
+const char* g_photoext[]={".jpg",".jpeg",".gif", ".png",".bmp", NULL};	   //Need to add all the supported image type
 
 
 


From vkathuria at helixcommunity.org  Thu Jul 30 04:43:57 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:09:16 2009
Subject: [Player-cvs] installer/archive make_tempdir, 1.77.2.41.2.4,
	1.77.2.41.2.5
Message-ID: 

Update of /cvsroot/player/installer/archive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv558

Modified Files:
      Tag: hxclient_3_4_9_atlas
	make_tempdir 
Log Message:
Changes to copy gif & bmp render into realplayer package

Index: make_tempdir
===================================================================
RCS file: /cvsroot/player/installer/archive/make_tempdir,v
retrieving revision 1.77.2.41.2.4
retrieving revision 1.77.2.41.2.5
diff -u -d -r1.77.2.41.2.4 -r1.77.2.41.2.5
--- make_tempdir	10 Jun 2009 04:39:07 -0000	1.77.2.41.2.4
+++ make_tempdir	30 Jul 2009 11:43:54 -0000	1.77.2.41.2.5
@@ -214,19 +214,18 @@
 inst.CopyModuleDlls(
     ("datatype/smil/fileformat", "smlfformat", "smlfformat"),
     ("datatype/smil/renderer", "smlrender", "smlrender"),
-    # ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
-    ("datatype/group/image", "imgrender", "imgrender"))
-
-    #("datatype/image/gif/fileformat", "giffformat", "giffformat"),
-    #("datatype/image/gif/renderer", "gifrender", "gifrender"),
+    ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
+    ("datatype/group/image", "imgrender", "imgrender"),
+    ("datatype/image/gif/fileformat", "giffformat", "giffformat"),
+    ("datatype/image/gif/renderer", "gifrender", "gifrender"),
     #("datatype/image/jpg/fileformat", "jpgfformat", "jpgfformat"),
     #("datatype/image/jpg/renderer", "jpgrender", "jpgrender"),
     #("datatype/image/png/fileformat", "pngfformat", "pngfformat"),
     #("datatype/image/png/renderer", "pngrender", "pngrender"),
     #("datatype/image/wbmp/fileformat", "wbmpfformat", "wbmpfformat"),
     #("datatype/image/wbmp/renderer", "wbmprend", "wbmprend"),
-    #("datatype/image/bmp/renderer", "bmprend", "bmprend"),
-    #("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
+    ("datatype/image/bmp/renderer", "bmprend", "bmprend"),
+    ("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
 
 # RealPix should all be in imgrender.so already.
 #inst.CopyModuleDlls(


From vkathuria at helixcommunity.org  Thu Jul 30 04:43:57 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:09:17 2009
Subject: [Player-cvs] installer/archive make_tempdir, 1.77.2.41.2.4,
	1.77.2.41.2.5
Message-ID: 

Update of /cvsroot/player/installer/archive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv558

Modified Files:
      Tag: hxclient_3_4_9_atlas
	make_tempdir 
Log Message:
Changes to copy gif & bmp render into realplayer package

Index: make_tempdir
===================================================================
RCS file: /cvsroot/player/installer/archive/make_tempdir,v
retrieving revision 1.77.2.41.2.4
retrieving revision 1.77.2.41.2.5
diff -u -d -r1.77.2.41.2.4 -r1.77.2.41.2.5
--- make_tempdir	10 Jun 2009 04:39:07 -0000	1.77.2.41.2.4
+++ make_tempdir	30 Jul 2009 11:43:54 -0000	1.77.2.41.2.5
@@ -214,19 +214,18 @@
 inst.CopyModuleDlls(
     ("datatype/smil/fileformat", "smlfformat", "smlfformat"),
     ("datatype/smil/renderer", "smlrender", "smlrender"),
-    # ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
-    ("datatype/group/image", "imgrender", "imgrender"))
-
-    #("datatype/image/gif/fileformat", "giffformat", "giffformat"),
-    #("datatype/image/gif/renderer", "gifrender", "gifrender"),
+    ("datatype/group/image", "imgfformat", "imgfformat"), # This is meant for Helix Server only.
+    ("datatype/group/image", "imgrender", "imgrender"),
+    ("datatype/image/gif/fileformat", "giffformat", "giffformat"),
+    ("datatype/image/gif/renderer", "gifrender", "gifrender"),
     #("datatype/image/jpg/fileformat", "jpgfformat", "jpgfformat"),
     #("datatype/image/jpg/renderer", "jpgrender", "jpgrender"),
     #("datatype/image/png/fileformat", "pngfformat", "pngfformat"),
     #("datatype/image/png/renderer", "pngrender", "pngrender"),
     #("datatype/image/wbmp/fileformat", "wbmpfformat", "wbmpfformat"),
     #("datatype/image/wbmp/renderer", "wbmprend", "wbmprend"),
-    #("datatype/image/bmp/renderer", "bmprend", "bmprend"),
-    #("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
+    ("datatype/image/bmp/renderer", "bmprend", "bmprend"),
+    ("datatype/image/bmp/fileformat", "bmpfformat", "bmpfformat"))
 
 # RealPix should all be in imgrender.so already.
 #inst.CopyModuleDlls(


From vkathuria at helixcommunity.org  Thu Jul 30 04:45:28 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:10:52 2009
Subject: [Player-cvs] netbook/medialib/platform/unix gtkmedialibrary.cpp,
	1.1.2.26, 1.1.2.26.2.1
Message-ID: 

Update of /cvsroot/player/netbook/medialib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv1363/platform/unix

Modified Files:
      Tag: hxclient_3_4_9_atlas
	gtkmedialibrary.cpp 
Log Message:
Change to add support for bmp in scan for media

Index: gtkmedialibrary.cpp
===================================================================
RCS file: /cvsroot/player/netbook/medialib/platform/unix/Attic/gtkmedialibrary.cpp,v
retrieving revision 1.1.2.26
retrieving revision 1.1.2.26.2.1
diff -u -d -r1.1.2.26 -r1.1.2.26.2.1
--- gtkmedialibrary.cpp	3 Mar 2009 12:32:16 -0000	1.1.2.26
+++ gtkmedialibrary.cpp	30 Jul 2009 11:45:24 -0000	1.1.2.26.2.1
@@ -60,7 +60,7 @@
 #define MAX_DIR_DEPTH 20
 const char* g_videoext[]={".mpg", ".mpeg", ".mp4", ".3gp", ".rm", ".rmvb", ".wmv", ".avi", ".divx", ".mov", ".ram", NULL};
 const char* g_audioext[]={".mp3", ".wav", ".wma", ".aac", ".m4a", ".ogg", ".ra", ".amr", NULL};
-const char* g_photoext[5]={".jpg",".jpeg",".gif", ".png", NULL};	   //Need to add all the supported image type
+const char* g_photoext[]={".jpg",".jpeg",".gif", ".png",".bmp", NULL};	   //Need to add all the supported image type
 
 
 


From vkathuria at helixcommunity.org  Thu Jul 30 04:45:28 2009
From: vkathuria at helixcommunity.org (vkathuria@helixcommunity.org)
Date: Thu Jul 30 10:10:52 2009
Subject: [Player-cvs] netbook/medialib/platform/unix gtkmedialibrary.cpp,
	1.1.2.26, 1.1.2.26.2.1
Message-ID: 

Update of /cvsroot/player/netbook/medialib/platform/unix
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv1363/platform/unix

Modified Files:
      Tag: hxclient_3_4_9_atlas
	gtkmedialibrary.cpp 
Log Message:
Change to add support for bmp in scan for media

Index: gtkmedialibrary.cpp
===================================================================
RCS file: /cvsroot/player/netbook/medialib/platform/unix/Attic/gtkmedialibrary.cpp,v
retrieving revision 1.1.2.26
retrieving revision 1.1.2.26.2.1
diff -u -d -r1.1.2.26 -r1.1.2.26.2.1
--- gtkmedialibrary.cpp	3 Mar 2009 12:32:16 -0000	1.1.2.26
+++ gtkmedialibrary.cpp	30 Jul 2009 11:45:24 -0000	1.1.2.26.2.1
@@ -60,7 +60,7 @@
 #define MAX_DIR_DEPTH 20
 const char* g_videoext[]={".mpg", ".mpeg", ".mp4", ".3gp", ".rm", ".rmvb", ".wmv", ".avi", ".divx", ".mov", ".ram", NULL};
 const char* g_audioext[]={".mp3", ".wav", ".wma", ".aac", ".m4a", ".ogg", ".ra", ".amr", NULL};
-const char* g_photoext[5]={".jpg",".jpeg",".gif", ".png", NULL};	   //Need to add all the supported image type
+const char* g_photoext[]={".jpg",".jpeg",".gif", ".png",".bmp", NULL};	   //Need to add all the supported image type
 
 
 


From dyek at helixcommunity.org  Thu Jul 30 16:11:38 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Thu Jul 30 21:36:53 2009
Subject: [Player-cvs] app/gtk commonapp.h, 1.33.2.3, 1.33.2.4 commonapp.cpp,
	1.95.2.13, 1.95.2.14
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19667/player/app/gtk

Modified Files:
      Tag: hxclient_3_1_0_atlas
	commonapp.h commonapp.cpp 
Log Message:
Added --maximize player command line option to 
start player in maximized window mode.

ABOUT --fullscreen:
The player currently has a --fullscreen command line option 
that start video playback in fullscreen mode on startup.

This startup fullscreen mode only works when a file/URL is provided
in the command line option to, supposedly, start video playback.

Without providing a file/URL, it doesn't make sense to 
display no window title bar, no menu bar, etc., 
except a fullscreen logo.
So, --fullscreen doesn't work as designed (albeit confusing) when
the file/URL isn't provided on the command line.


BACK TO THE NEW --maximize COMMAND LINE OPTION:
This new command line options add the ability to 
start the player window in maximized mode, 
with or without file/URL specified on the command line,
as long as the window manager supports it.

The command line option maximizes only the player main window,
and (desirably) not the FirstRun window.
This is a better behavior, compared to the solution 
used by Dell netbook to start all application window maximized,
which resulted in the FirstRun window being maximized too
(very undesirable).

This is just a quick change. 
I can imagine that there might be possible usage scenarios 
where this implementation may need further refining.


Files Modified:
player/app/gtk/commonapp.h
player/app/gtk/commonapp.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004360.html



Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.3
retrieving revision 1.33.2.4
diff -u -d -r1.33.2.3 -r1.33.2.4
--- commonapp.h	2 Jul 2009 04:33:29 -0000	1.33.2.3
+++ commonapp.h	30 Jul 2009 23:11:36 -0000	1.33.2.4
@@ -96,6 +96,7 @@
     int callbacks_fd;
     const gchar* location;
     gboolean fullscreen;
+    gboolean maximize;
     gboolean quit_on_done;
     gboolean open_in_new_player;
 } HXCommandLineOptions;

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.13
retrieving revision 1.95.2.14
diff -u -d -r1.95.2.13 -r1.95.2.14
--- commonapp.cpp	2 Jul 2009 04:33:29 -0000	1.95.2.13
+++ commonapp.cpp	30 Jul 2009 23:11:36 -0000	1.95.2.14
@@ -1556,6 +1556,7 @@
     cmd->callbacks_fd = -1;
     cmd->is_remote_command = FALSE;
     cmd->fullscreen = FALSE;
+    cmd->maximize = FALSE;
     cmd->quit_on_done = FALSE;
 
     // Location is not set in this function. We set it once gtk
@@ -1565,45 +1566,45 @@
     for(;;)
     {
 #if (defined(_GNU_SOURCE) || defined(_SOLARIS) || defined(_FREEBSD))
-    static struct option long_options[] = {
-        /* name          has_arg  flag    val */
-        {  "embedded",   1,       0,      'e' }, // argument is xid
+        static struct option long_options[] = {
+            /* name          has_arg  flag    val */
+            {  "embedded",   1,       0,      'e' }, // argument is xid
             {  "callbacks",  1,       0,      'c' },
-        {  "remote",     0,       0,      'r' },
-        {  "help",       0,       0,      'h' },
+            {  "remote",     0,       0,      'r' },
+            {  "help",       0,       0,      'h' },
             {  "fullscreen", 0,       0,      'f' },
+            {  "maximize",   0,       0,      'm' },
             {  "quit",       0,       0,      'q' },
             {  "new",        0,       0,      'n' },
-        {  0,            0,       0,      0   },
-    };
-    
-    c = getopt_long(argc, argv, "c:e:fhnqr",
-            long_options, &option_index);
+            {  0,            0,       0,      0   },
+        };
+        
+        c = getopt_long(argc, argv, "c:e:fhmnqr",
+                long_options, &option_index);
 #else
-    c = getopt(argc, argv, "c:e:hnr");
+        c = getopt(argc, argv, "c:e:fhmnqr");
 #endif
         
-    if(c == -1)
-    {
-        break;
-    }
+        if(c == -1)
+        {
+            break;
+        }
 
-    switch(c)
-    {
-        case ':':
-        /* Missing a value for an option */
-        break;
-        
-        case 'r':
-        /* tbd: implement remote commands */
-        cmd->is_remote_command = TRUE;
-        break;
+        switch(c)
+        {
+            case ':':
+                /* Missing a value for an option */
+                break;
 
-        case 'e':
+            case 'r':
+                /* tbd: implement remote commands */
+                cmd->is_remote_command = TRUE;
+                break;
+
+            case 'e':
                 if(!sscanf(optarg, "%d", &cmd->command_fd))
                 {
-                    g_warning(_("Invalid argument to --embedded: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --embedded: %s"), optarg);
                 }
                 cmd->run_embedded = TRUE;
                 break;
@@ -1611,62 +1612,66 @@
             case 'c':
                 if(!sscanf(optarg, "%d", &cmd->callbacks_fd))
                 {
-                    g_warning(_("Invalid argument to --callbacks: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --callbacks: %s"), optarg);
                 }
-        break;
+                break;
 
-        case 'h':
-        g_print(_(
-            "Usage: %s [OPTION]... [FILE]\n"
-            "\n"
-            "  -r, --remote        Send a running player a command\n"
-            "  -h, --help          Display this message\n"
-            "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
+            case 'h':
+                g_print(_(
+                    "Usage: %s [OPTION]... [FILE]\n"
+                    "\n"
+                    "  -r, --remote        Send a running player a command\n"
+                    "  -h, --help          Display this message\n"
+                    "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
                     "  -c, --callbacks FD  Use with --embedded, receive callbacks on descriptor FD\n"
-                    "  -f, --fullscreen    Run the player in fullscreen mode on startup\n"
+                    "  -f, --fullscreen    Start video playback in fullscreen mode on startup\n"
+                    "  -m, --maximize      Run the player in maximized window mode on startup\n"
                     "  -n, --new           Open in new player (do not reuse a running player\n"
                     "  -q, --quit          Quit when playback is completed (used in conjunction with a URL\n"
-            "\n"
-            "https://player.helixcommunity.org\n"
-            ), APP_NAME_SHORT);
-        exit(EXIT_SUCCESS);
-        break;
+                    "\n"
+                    "https://player.helixcommunity.org\n"
+                         ), APP_NAME_SHORT);
+                exit(EXIT_SUCCESS);
+                break;
 
             case 'f':
-        cmd->fullscreen = TRUE;
+                cmd->fullscreen = TRUE;
+                break;
+
+            case 'm':
+                cmd->maximize = TRUE;
                 break;
 
             case 'n':
                 cmd->open_in_new_player = TRUE;
                 break;
-                
+
             case 'q':
-        cmd->quit_on_done = TRUE;                
+                cmd->quit_on_done = TRUE;                
                 break;
 
             case '?':
-            {
-                gchar* option = argv[optind - 1];
-                unknown_options = g_list_append(unknown_options, option);
-
-                if(optind < argc)
                 {
-                    if(argv[optind][0] != '-')
+                    gchar* option = argv[optind - 1];
+                    unknown_options = g_list_append(unknown_options, option);
+
+                    if(optind < argc)
                     {
-                        /* Looks like this option has an argument with it.
-                           Add it to our list so that they stay in order*/
-                        optind++;
-                        option = argv[optind - 1];
-                        unknown_options = g_list_append(unknown_options, option);
-                    }
-                }                
+                        if(argv[optind][0] != '-')
+                        {
+                            /* Looks like this option has an argument with it.
+                               Add it to our list so that they stay in order*/
+                            optind++;
+                            option = argv[optind - 1];
+                            unknown_options = g_list_append(unknown_options, option);
+                        }
+                    }                
+                    break;
+                }   
+            default:
+                g_assert(FALSE);
                 break;
-            }   
-        default:
-        g_assert(FALSE);
-        break;
-    }
+        }
     }
 
 
@@ -2121,7 +2126,7 @@
 
     if(stat(pipe, &fileInfo) == 0)
     {
-        time_t FileCreateTime = fileInfo.st_ctime;	       
+        time_t FileCreateTime = fileInfo.st_ctime;             
         time_t CurrentSysTime = time ( &CurrentSysTime );
 
         /*xxx: sgarg: Here we are putting a check to confirm whether 
@@ -2138,21 +2143,21 @@
             remove(pipe);
         }
     }
-	
+        
     retval = mkfifo(pipe, 0666);
 
     if ((retval == -1)) 
     {
 
-	if(errno == EEXIST)
-	{
- 	    exit(EXIT_SUCCESS);
-	}
-	else
-	{
+        if(errno == EEXIST)
+        {
+            exit(EXIT_SUCCESS);
+        }
+        else
+        {
             perror("Error creating the named pipe");
             exit (1);
-	}
+        }
     }
 
 // Default to use libglade. 
@@ -2195,6 +2200,11 @@
 
             hxwindow_open(app_main_window, url);
         }
+
+        if(cmd.maximize)
+        {
+            gtk_window_maximize( GTK_WINDOW(hxwindow_get_window(app_main_window)) );
+        }
         
         g_free(url);
 
@@ -2230,7 +2240,7 @@
     /* Remove the named pipe*/
     remove(pipe);
      HX_G_FREE(pipe);
-	
+        
     if(g_hxcommon_app.restart_on_quit)
     {
         return EXIT_RESTART_PLAYER;


From dyek at helixcommunity.org  Thu Jul 30 16:11:38 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Thu Jul 30 21:36:54 2009
Subject: [Player-cvs] app/gtk commonapp.h, 1.33.2.3, 1.33.2.4 commonapp.cpp,
	1.95.2.13, 1.95.2.14
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19667/player/app/gtk

Modified Files:
      Tag: hxclient_3_1_0_atlas
	commonapp.h commonapp.cpp 
Log Message:
Added --maximize player command line option to 
start player in maximized window mode.

ABOUT --fullscreen:
The player currently has a --fullscreen command line option 
that start video playback in fullscreen mode on startup.

This startup fullscreen mode only works when a file/URL is provided
in the command line option to, supposedly, start video playback.

Without providing a file/URL, it doesn't make sense to 
display no window title bar, no menu bar, etc., 
except a fullscreen logo.
So, --fullscreen doesn't work as designed (albeit confusing) when
the file/URL isn't provided on the command line.


BACK TO THE NEW --maximize COMMAND LINE OPTION:
This new command line options add the ability to 
start the player window in maximized mode, 
with or without file/URL specified on the command line,
as long as the window manager supports it.

The command line option maximizes only the player main window,
and (desirably) not the FirstRun window.
This is a better behavior, compared to the solution 
used by Dell netbook to start all application window maximized,
which resulted in the FirstRun window being maximized too
(very undesirable).

This is just a quick change. 
I can imagine that there might be possible usage scenarios 
where this implementation may need further refining.


Files Modified:
player/app/gtk/commonapp.h
player/app/gtk/commonapp.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004360.html



Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.3
retrieving revision 1.33.2.4
diff -u -d -r1.33.2.3 -r1.33.2.4
--- commonapp.h	2 Jul 2009 04:33:29 -0000	1.33.2.3
+++ commonapp.h	30 Jul 2009 23:11:36 -0000	1.33.2.4
@@ -96,6 +96,7 @@
     int callbacks_fd;
     const gchar* location;
     gboolean fullscreen;
+    gboolean maximize;
     gboolean quit_on_done;
     gboolean open_in_new_player;
 } HXCommandLineOptions;

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.13
retrieving revision 1.95.2.14
diff -u -d -r1.95.2.13 -r1.95.2.14
--- commonapp.cpp	2 Jul 2009 04:33:29 -0000	1.95.2.13
+++ commonapp.cpp	30 Jul 2009 23:11:36 -0000	1.95.2.14
@@ -1556,6 +1556,7 @@
     cmd->callbacks_fd = -1;
     cmd->is_remote_command = FALSE;
     cmd->fullscreen = FALSE;
+    cmd->maximize = FALSE;
     cmd->quit_on_done = FALSE;
 
     // Location is not set in this function. We set it once gtk
@@ -1565,45 +1566,45 @@
     for(;;)
     {
 #if (defined(_GNU_SOURCE) || defined(_SOLARIS) || defined(_FREEBSD))
-    static struct option long_options[] = {
-        /* name          has_arg  flag    val */
-        {  "embedded",   1,       0,      'e' }, // argument is xid
+        static struct option long_options[] = {
+            /* name          has_arg  flag    val */
+            {  "embedded",   1,       0,      'e' }, // argument is xid
             {  "callbacks",  1,       0,      'c' },
-        {  "remote",     0,       0,      'r' },
-        {  "help",       0,       0,      'h' },
+            {  "remote",     0,       0,      'r' },
+            {  "help",       0,       0,      'h' },
             {  "fullscreen", 0,       0,      'f' },
+            {  "maximize",   0,       0,      'm' },
             {  "quit",       0,       0,      'q' },
             {  "new",        0,       0,      'n' },
-        {  0,            0,       0,      0   },
-    };
-    
-    c = getopt_long(argc, argv, "c:e:fhnqr",
-            long_options, &option_index);
+            {  0,            0,       0,      0   },
+        };
+        
+        c = getopt_long(argc, argv, "c:e:fhmnqr",
+                long_options, &option_index);
 #else
-    c = getopt(argc, argv, "c:e:hnr");
+        c = getopt(argc, argv, "c:e:fhmnqr");
 #endif
         
-    if(c == -1)
-    {
-        break;
-    }
+        if(c == -1)
+        {
+            break;
+        }
 
-    switch(c)
-    {
-        case ':':
-        /* Missing a value for an option */
-        break;
-        
-        case 'r':
-        /* tbd: implement remote commands */
-        cmd->is_remote_command = TRUE;
-        break;
+        switch(c)
+        {
+            case ':':
+                /* Missing a value for an option */
+                break;
 
-        case 'e':
+            case 'r':
+                /* tbd: implement remote commands */
+                cmd->is_remote_command = TRUE;
+                break;
+
+            case 'e':
                 if(!sscanf(optarg, "%d", &cmd->command_fd))
                 {
-                    g_warning(_("Invalid argument to --embedded: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --embedded: %s"), optarg);
                 }
                 cmd->run_embedded = TRUE;
                 break;
@@ -1611,62 +1612,66 @@
             case 'c':
                 if(!sscanf(optarg, "%d", &cmd->callbacks_fd))
                 {
-                    g_warning(_("Invalid argument to --callbacks: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --callbacks: %s"), optarg);
                 }
-        break;
+                break;
 
-        case 'h':
-        g_print(_(
-            "Usage: %s [OPTION]... [FILE]\n"
-            "\n"
-            "  -r, --remote        Send a running player a command\n"
-            "  -h, --help          Display this message\n"
-            "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
+            case 'h':
+                g_print(_(
+                    "Usage: %s [OPTION]... [FILE]\n"
+                    "\n"
+                    "  -r, --remote        Send a running player a command\n"
+                    "  -h, --help          Display this message\n"
+                    "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
                     "  -c, --callbacks FD  Use with --embedded, receive callbacks on descriptor FD\n"
-                    "  -f, --fullscreen    Run the player in fullscreen mode on startup\n"
+                    "  -f, --fullscreen    Start video playback in fullscreen mode on startup\n"
+                    "  -m, --maximize      Run the player in maximized window mode on startup\n"
                     "  -n, --new           Open in new player (do not reuse a running player\n"
                     "  -q, --quit          Quit when playback is completed (used in conjunction with a URL\n"
-            "\n"
-            "https://player.helixcommunity.org\n"
-            ), APP_NAME_SHORT);
-        exit(EXIT_SUCCESS);
-        break;
+                    "\n"
+                    "https://player.helixcommunity.org\n"
+                         ), APP_NAME_SHORT);
+                exit(EXIT_SUCCESS);
+                break;
 
             case 'f':
-        cmd->fullscreen = TRUE;
+                cmd->fullscreen = TRUE;
+                break;
+
+            case 'm':
+                cmd->maximize = TRUE;
                 break;
 
             case 'n':
                 cmd->open_in_new_player = TRUE;
                 break;
-                
+
             case 'q':
-        cmd->quit_on_done = TRUE;                
+                cmd->quit_on_done = TRUE;                
                 break;
 
             case '?':
-            {
-                gchar* option = argv[optind - 1];
-                unknown_options = g_list_append(unknown_options, option);
-
-                if(optind < argc)
                 {
-                    if(argv[optind][0] != '-')
+                    gchar* option = argv[optind - 1];
+                    unknown_options = g_list_append(unknown_options, option);
+
+                    if(optind < argc)
                     {
-                        /* Looks like this option has an argument with it.
-                           Add it to our list so that they stay in order*/
-                        optind++;
-                        option = argv[optind - 1];
-                        unknown_options = g_list_append(unknown_options, option);
-                    }
-                }                
+                        if(argv[optind][0] != '-')
+                        {
+                            /* Looks like this option has an argument with it.
+                               Add it to our list so that they stay in order*/
+                            optind++;
+                            option = argv[optind - 1];
+                            unknown_options = g_list_append(unknown_options, option);
+                        }
+                    }                
+                    break;
+                }   
+            default:
+                g_assert(FALSE);
                 break;
-            }   
-        default:
-        g_assert(FALSE);
-        break;
-    }
+        }
     }
 
 
@@ -2121,7 +2126,7 @@
 
     if(stat(pipe, &fileInfo) == 0)
     {
-        time_t FileCreateTime = fileInfo.st_ctime;	       
+        time_t FileCreateTime = fileInfo.st_ctime;             
         time_t CurrentSysTime = time ( &CurrentSysTime );
 
         /*xxx: sgarg: Here we are putting a check to confirm whether 
@@ -2138,21 +2143,21 @@
             remove(pipe);
         }
     }
-	
+        
     retval = mkfifo(pipe, 0666);
 
     if ((retval == -1)) 
     {
 
-	if(errno == EEXIST)
-	{
- 	    exit(EXIT_SUCCESS);
-	}
-	else
-	{
+        if(errno == EEXIST)
+        {
+            exit(EXIT_SUCCESS);
+        }
+        else
+        {
             perror("Error creating the named pipe");
             exit (1);
-	}
+        }
     }
 
 // Default to use libglade. 
@@ -2195,6 +2200,11 @@
 
             hxwindow_open(app_main_window, url);
         }
+
+        if(cmd.maximize)
+        {
+            gtk_window_maximize( GTK_WINDOW(hxwindow_get_window(app_main_window)) );
+        }
         
         g_free(url);
 
@@ -2230,7 +2240,7 @@
     /* Remove the named pipe*/
     remove(pipe);
      HX_G_FREE(pipe);
-	
+        
     if(g_hxcommon_app.restart_on_quit)
     {
         return EXIT_RESTART_PLAYER;


From dyek at helixcommunity.org  Thu Jul 30 16:19:01 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Thu Jul 30 21:44:17 2009
Subject: [Player-cvs] app/gtk commonapp.h, 1.33.2.1.10.2,
	1.33.2.1.10.3 commonapp.cpp, 1.95.2.9.8.3, 1.95.2.9.8.4
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20244/player/app/gtk

Modified Files:
      Tag: hxclient_3_4_7_atlas
	commonapp.h commonapp.cpp 
Log Message:
Added --maximize player command line option to
start player in maximized window mode.

ABOUT --fullscreen:
The player currently has a --fullscreen command line option
that start video playback in fullscreen mode on startup.

This startup fullscreen mode only works when a file/URL is provided
in the command line option to, supposedly, start video playback.

Without providing a file/URL, it doesn't make sense to
display no window title bar, no menu bar, etc.,
except a fullscreen logo.
So, --fullscreen doesn't work as designed (albeit confusing) when
the file/URL isn't provided on the command line.


BACK TO THE NEW --maximize COMMAND LINE OPTION:
This new command line options add the ability to
start the player window in maximized mode,
with or without file/URL specified on the command line,
as long as the window manager supports it.

The command line option maximizes only the player main window,
and (desirably) not the FirstRun window.
This is a better behavior, compared to the solution
used by Dell netbook to start all application window maximized,
which resulted in the FirstRun window being maximized too
(very undesirable).

This is just a quick change.
I can imagine that there might be possible usage scenarios
where this implementation may need further refining.


Files Modified:
player/app/gtk/commonapp.h
player/app/gtk/commonapp.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004360.html



Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.1.10.2
retrieving revision 1.33.2.1.10.3
diff -u -d -r1.33.2.1.10.2 -r1.33.2.1.10.3
--- commonapp.h	2 Jul 2009 04:31:52 -0000	1.33.2.1.10.2
+++ commonapp.h	30 Jul 2009 23:18:59 -0000	1.33.2.1.10.3
@@ -96,6 +96,7 @@
     int callbacks_fd;
     const gchar* location;
     gboolean fullscreen;
+    gboolean maximize;
     gboolean quit_on_done;
     gboolean open_in_new_player;
 } HXCommandLineOptions;

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.9.8.3
retrieving revision 1.95.2.9.8.4
diff -u -d -r1.95.2.9.8.3 -r1.95.2.9.8.4
--- commonapp.cpp	2 Jul 2009 04:31:52 -0000	1.95.2.9.8.3
+++ commonapp.cpp	30 Jul 2009 23:18:59 -0000	1.95.2.9.8.4
@@ -1556,6 +1556,7 @@
     cmd->callbacks_fd = -1;
     cmd->is_remote_command = FALSE;
     cmd->fullscreen = FALSE;
+    cmd->maximize = FALSE;
     cmd->quit_on_done = FALSE;
 
     // Location is not set in this function. We set it once gtk
@@ -1565,45 +1566,45 @@
     for(;;)
     {
 #if (defined(_GNU_SOURCE) || defined(_SOLARIS) || defined(_FREEBSD))
-    static struct option long_options[] = {
-        /* name          has_arg  flag    val */
-        {  "embedded",   1,       0,      'e' }, // argument is xid
+        static struct option long_options[] = {
+            /* name          has_arg  flag    val */
+            {  "embedded",   1,       0,      'e' }, // argument is xid
             {  "callbacks",  1,       0,      'c' },
-        {  "remote",     0,       0,      'r' },
-        {  "help",       0,       0,      'h' },
+            {  "remote",     0,       0,      'r' },
+            {  "help",       0,       0,      'h' },
             {  "fullscreen", 0,       0,      'f' },
+            {  "maximize",   0,       0,      'm' },
             {  "quit",       0,       0,      'q' },
             {  "new",        0,       0,      'n' },
-        {  0,            0,       0,      0   },
-    };
-    
-    c = getopt_long(argc, argv, "c:e:fhnqr",
-            long_options, &option_index);
+            {  0,            0,       0,      0   },
+        };
+        
+        c = getopt_long(argc, argv, "c:e:fhmnqr",
+                long_options, &option_index);
 #else
-    c = getopt(argc, argv, "c:e:hnr");
+        c = getopt(argc, argv, "c:e:fhmnqr");
 #endif
         
-    if(c == -1)
-    {
-        break;
-    }
+        if(c == -1)
+        {
+            break;
+        }
 
-    switch(c)
-    {
-        case ':':
-        /* Missing a value for an option */
-        break;
-        
-        case 'r':
-        /* tbd: implement remote commands */
-        cmd->is_remote_command = TRUE;
-        break;
+        switch(c)
+        {
+            case ':':
+                /* Missing a value for an option */
+                break;
 
-        case 'e':
+            case 'r':
+                /* tbd: implement remote commands */
+                cmd->is_remote_command = TRUE;
+                break;
+
+            case 'e':
                 if(!sscanf(optarg, "%d", &cmd->command_fd))
                 {
-                    g_warning(_("Invalid argument to --embedded: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --embedded: %s"), optarg);
                 }
                 cmd->run_embedded = TRUE;
                 break;
@@ -1611,62 +1612,66 @@
             case 'c':
                 if(!sscanf(optarg, "%d", &cmd->callbacks_fd))
                 {
-                    g_warning(_("Invalid argument to --callbacks: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --callbacks: %s"), optarg);
                 }
-        break;
+                break;
 
-        case 'h':
-        g_print(_(
-            "Usage: %s [OPTION]... [FILE]\n"
-            "\n"
-            "  -r, --remote        Send a running player a command\n"
-            "  -h, --help          Display this message\n"
-            "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
+            case 'h':
+                g_print(_(
+                    "Usage: %s [OPTION]... [FILE]\n"
+                    "\n"
+                    "  -r, --remote        Send a running player a command\n"
+                    "  -h, --help          Display this message\n"
+                    "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
                     "  -c, --callbacks FD  Use with --embedded, receive callbacks on descriptor FD\n"
-                    "  -f, --fullscreen    Run the player in fullscreen mode on startup\n"
+                    "  -f, --fullscreen    Start video playback in fullscreen mode on startup\n"
+                    "  -m, --maximize      Run the player in maximized window mode on startup\n"
                     "  -n, --new           Open in new player (do not reuse a running player\n"
                     "  -q, --quit          Quit when playback is completed (used in conjunction with a URL\n"
-            "\n"
-            "https://player.helixcommunity.org\n"
-            ), APP_NAME_SHORT);
-        exit(EXIT_SUCCESS);
-        break;
+                    "\n"
+                    "https://player.helixcommunity.org\n"
+                         ), APP_NAME_SHORT);
+                exit(EXIT_SUCCESS);
+                break;
 
             case 'f':
-        cmd->fullscreen = TRUE;
+                cmd->fullscreen = TRUE;
+                break;
+
+            case 'm':
+                cmd->maximize = TRUE;
                 break;
 
             case 'n':
                 cmd->open_in_new_player = TRUE;
                 break;
-                
+
             case 'q':
-        cmd->quit_on_done = TRUE;                
+                cmd->quit_on_done = TRUE;                
                 break;
 
             case '?':
-            {
-                gchar* option = argv[optind - 1];
-                unknown_options = g_list_append(unknown_options, option);
-
-                if(optind < argc)
                 {
-                    if(argv[optind][0] != '-')
+                    gchar* option = argv[optind - 1];
+                    unknown_options = g_list_append(unknown_options, option);
+
+                    if(optind < argc)
                     {
-                        /* Looks like this option has an argument with it.
-                           Add it to our list so that they stay in order*/
-                        optind++;
-                        option = argv[optind - 1];
-                        unknown_options = g_list_append(unknown_options, option);
-                    }
-                }                
+                        if(argv[optind][0] != '-')
+                        {
+                            /* Looks like this option has an argument with it.
+                               Add it to our list so that they stay in order*/
+                            optind++;
+                            option = argv[optind - 1];
+                            unknown_options = g_list_append(unknown_options, option);
+                        }
+                    }                
+                    break;
+                }   
+            default:
+                g_assert(FALSE);
                 break;
-            }   
-        default:
-        g_assert(FALSE);
-        break;
-    }
+        }
     }
 
 
@@ -2117,7 +2122,7 @@
 
     if(stat(pipe, &fileInfo) == 0)
     {
-        time_t FileCreateTime = fileInfo.st_ctime;	       
+        time_t FileCreateTime = fileInfo.st_ctime;             
         time_t CurrentSysTime = time ( &CurrentSysTime );
 
         /*xxx: sgarg: Here we are putting a check to confirm whether 
@@ -2134,21 +2139,21 @@
             remove(pipe);
         }
     }
-	
+        
     retval = mkfifo(pipe, 0666);
 
     if ((retval == -1)) 
     {
 
-	if(errno == EEXIST)
-	{
- 	    exit(EXIT_SUCCESS);
-	}
-	else
-	{
+        if(errno == EEXIST)
+        {
+            exit(EXIT_SUCCESS);
+        }
+        else
+        {
             perror("Error creating the named pipe");
             exit (1);
-	}
+        }
     }
 
 // Default to use libglade. 
@@ -2191,6 +2196,11 @@
 
             hxwindow_open(app_main_window, url);
         }
+
+        if(cmd.maximize)
+        {
+            gtk_window_maximize( GTK_WINDOW(hxwindow_get_window(app_main_window)) );
+        }
         
         g_free(url);
 
@@ -2226,7 +2236,7 @@
     /* Remove the named pipe*/
     remove(pipe);
      HX_G_FREE(pipe);
-	
+        
     if(g_hxcommon_app.restart_on_quit)
     {
         return EXIT_RESTART_PLAYER;


From dyek at helixcommunity.org  Thu Jul 30 16:19:01 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Thu Jul 30 21:44:17 2009
Subject: [Player-cvs] app/gtk commonapp.h, 1.33.2.1.10.2,
	1.33.2.1.10.3 commonapp.cpp, 1.95.2.9.8.3, 1.95.2.9.8.4
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20244/player/app/gtk

Modified Files:
      Tag: hxclient_3_4_7_atlas
	commonapp.h commonapp.cpp 
Log Message:
Added --maximize player command line option to
start player in maximized window mode.

ABOUT --fullscreen:
The player currently has a --fullscreen command line option
that start video playback in fullscreen mode on startup.

This startup fullscreen mode only works when a file/URL is provided
in the command line option to, supposedly, start video playback.

Without providing a file/URL, it doesn't make sense to
display no window title bar, no menu bar, etc.,
except a fullscreen logo.
So, --fullscreen doesn't work as designed (albeit confusing) when
the file/URL isn't provided on the command line.


BACK TO THE NEW --maximize COMMAND LINE OPTION:
This new command line options add the ability to
start the player window in maximized mode,
with or without file/URL specified on the command line,
as long as the window manager supports it.

The command line option maximizes only the player main window,
and (desirably) not the FirstRun window.
This is a better behavior, compared to the solution
used by Dell netbook to start all application window maximized,
which resulted in the FirstRun window being maximized too
(very undesirable).

This is just a quick change.
I can imagine that there might be possible usage scenarios
where this implementation may need further refining.


Files Modified:
player/app/gtk/commonapp.h
player/app/gtk/commonapp.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004360.html



Index: commonapp.h
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.h,v
retrieving revision 1.33.2.1.10.2
retrieving revision 1.33.2.1.10.3
diff -u -d -r1.33.2.1.10.2 -r1.33.2.1.10.3
--- commonapp.h	2 Jul 2009 04:31:52 -0000	1.33.2.1.10.2
+++ commonapp.h	30 Jul 2009 23:18:59 -0000	1.33.2.1.10.3
@@ -96,6 +96,7 @@
     int callbacks_fd;
     const gchar* location;
     gboolean fullscreen;
+    gboolean maximize;
     gboolean quit_on_done;
     gboolean open_in_new_player;
 } HXCommandLineOptions;

Index: commonapp.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/commonapp.cpp,v
retrieving revision 1.95.2.9.8.3
retrieving revision 1.95.2.9.8.4
diff -u -d -r1.95.2.9.8.3 -r1.95.2.9.8.4
--- commonapp.cpp	2 Jul 2009 04:31:52 -0000	1.95.2.9.8.3
+++ commonapp.cpp	30 Jul 2009 23:18:59 -0000	1.95.2.9.8.4
@@ -1556,6 +1556,7 @@
     cmd->callbacks_fd = -1;
     cmd->is_remote_command = FALSE;
     cmd->fullscreen = FALSE;
+    cmd->maximize = FALSE;
     cmd->quit_on_done = FALSE;
 
     // Location is not set in this function. We set it once gtk
@@ -1565,45 +1566,45 @@
     for(;;)
     {
 #if (defined(_GNU_SOURCE) || defined(_SOLARIS) || defined(_FREEBSD))
-    static struct option long_options[] = {
-        /* name          has_arg  flag    val */
-        {  "embedded",   1,       0,      'e' }, // argument is xid
+        static struct option long_options[] = {
+            /* name          has_arg  flag    val */
+            {  "embedded",   1,       0,      'e' }, // argument is xid
             {  "callbacks",  1,       0,      'c' },
-        {  "remote",     0,       0,      'r' },
-        {  "help",       0,       0,      'h' },
+            {  "remote",     0,       0,      'r' },
+            {  "help",       0,       0,      'h' },
             {  "fullscreen", 0,       0,      'f' },
+            {  "maximize",   0,       0,      'm' },
             {  "quit",       0,       0,      'q' },
             {  "new",        0,       0,      'n' },
-        {  0,            0,       0,      0   },
-    };
-    
-    c = getopt_long(argc, argv, "c:e:fhnqr",
-            long_options, &option_index);
+            {  0,            0,       0,      0   },
+        };
+        
+        c = getopt_long(argc, argv, "c:e:fhmnqr",
+                long_options, &option_index);
 #else
-    c = getopt(argc, argv, "c:e:hnr");
+        c = getopt(argc, argv, "c:e:fhmnqr");
 #endif
         
-    if(c == -1)
-    {
-        break;
-    }
+        if(c == -1)
+        {
+            break;
+        }
 
-    switch(c)
-    {
-        case ':':
-        /* Missing a value for an option */
-        break;
-        
-        case 'r':
-        /* tbd: implement remote commands */
-        cmd->is_remote_command = TRUE;
-        break;
+        switch(c)
+        {
+            case ':':
+                /* Missing a value for an option */
+                break;
 
-        case 'e':
+            case 'r':
+                /* tbd: implement remote commands */
+                cmd->is_remote_command = TRUE;
+                break;
+
+            case 'e':
                 if(!sscanf(optarg, "%d", &cmd->command_fd))
                 {
-                    g_warning(_("Invalid argument to --embedded: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --embedded: %s"), optarg);
                 }
                 cmd->run_embedded = TRUE;
                 break;
@@ -1611,62 +1612,66 @@
             case 'c':
                 if(!sscanf(optarg, "%d", &cmd->callbacks_fd))
                 {
-                    g_warning(_("Invalid argument to --callbacks: %s"),
-                              optarg);
+                    g_warning(_("Invalid argument to --callbacks: %s"), optarg);
                 }
-        break;
+                break;
 
-        case 'h':
-        g_print(_(
-            "Usage: %s [OPTION]... [FILE]\n"
-            "\n"
-            "  -r, --remote        Send a running player a command\n"
-            "  -h, --help          Display this message\n"
-            "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
+            case 'h':
+                g_print(_(
+                    "Usage: %s [OPTION]... [FILE]\n"
+                    "\n"
+                    "  -r, --remote        Send a running player a command\n"
+                    "  -h, --help          Display this message\n"
+                    "  -e, --embedded FD   Run player in embedded mode, receive commands on descriptor FD\n"
                     "  -c, --callbacks FD  Use with --embedded, receive callbacks on descriptor FD\n"
-                    "  -f, --fullscreen    Run the player in fullscreen mode on startup\n"
+                    "  -f, --fullscreen    Start video playback in fullscreen mode on startup\n"
+                    "  -m, --maximize      Run the player in maximized window mode on startup\n"
                     "  -n, --new           Open in new player (do not reuse a running player\n"
                     "  -q, --quit          Quit when playback is completed (used in conjunction with a URL\n"
-            "\n"
-            "https://player.helixcommunity.org\n"
-            ), APP_NAME_SHORT);
-        exit(EXIT_SUCCESS);
-        break;
+                    "\n"
+                    "https://player.helixcommunity.org\n"
+                         ), APP_NAME_SHORT);
+                exit(EXIT_SUCCESS);
+                break;
 
             case 'f':
-        cmd->fullscreen = TRUE;
+                cmd->fullscreen = TRUE;
+                break;
+
+            case 'm':
+                cmd->maximize = TRUE;
                 break;
 
             case 'n':
                 cmd->open_in_new_player = TRUE;
                 break;
-                
+
             case 'q':
-        cmd->quit_on_done = TRUE;                
+                cmd->quit_on_done = TRUE;                
                 break;
 
             case '?':
-            {
-                gchar* option = argv[optind - 1];
-                unknown_options = g_list_append(unknown_options, option);
-
-                if(optind < argc)
                 {
-                    if(argv[optind][0] != '-')
+                    gchar* option = argv[optind - 1];
+                    unknown_options = g_list_append(unknown_options, option);
+
+                    if(optind < argc)
                     {
-                        /* Looks like this option has an argument with it.
-                           Add it to our list so that they stay in order*/
-                        optind++;
-                        option = argv[optind - 1];
-                        unknown_options = g_list_append(unknown_options, option);
-                    }
-                }                
+                        if(argv[optind][0] != '-')
+                        {
+                            /* Looks like this option has an argument with it.
+                               Add it to our list so that they stay in order*/
+                            optind++;
+                            option = argv[optind - 1];
+                            unknown_options = g_list_append(unknown_options, option);
+                        }
+                    }                
+                    break;
+                }   
+            default:
+                g_assert(FALSE);
                 break;
-            }   
-        default:
-        g_assert(FALSE);
-        break;
-    }
+        }
     }
 
 
@@ -2117,7 +2122,7 @@
 
     if(stat(pipe, &fileInfo) == 0)
     {
-        time_t FileCreateTime = fileInfo.st_ctime;	       
+        time_t FileCreateTime = fileInfo.st_ctime;             
         time_t CurrentSysTime = time ( &CurrentSysTime );
 
         /*xxx: sgarg: Here we are putting a check to confirm whether 
@@ -2134,21 +2139,21 @@
             remove(pipe);
         }
     }
-	
+        
     retval = mkfifo(pipe, 0666);
 
     if ((retval == -1)) 
     {
 
-	if(errno == EEXIST)
-	{
- 	    exit(EXIT_SUCCESS);
-	}
-	else
-	{
+        if(errno == EEXIST)
+        {
+            exit(EXIT_SUCCESS);
+        }
+        else
+        {
             perror("Error creating the named pipe");
             exit (1);
-	}
+        }
     }
 
 // Default to use libglade. 
@@ -2191,6 +2196,11 @@
 
             hxwindow_open(app_main_window, url);
         }
+
+        if(cmd.maximize)
+        {
+            gtk_window_maximize( GTK_WINDOW(hxwindow_get_window(app_main_window)) );
+        }
         
         g_free(url);
 
@@ -2226,7 +2236,7 @@
     /* Remove the named pipe*/
     remove(pipe);
      HX_G_FREE(pipe);
-	
+        
     if(g_hxcommon_app.restart_on_quit)
     {
         return EXIT_RESTART_PLAYER;


From dyek at helixcommunity.org  Fri Jul 31 12:08:11 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Fri Jul 31 17:33:18 2009
Subject: [Player-cvs] app/gtk hxemptycollectionlabel.cpp, 1.1.2.3.6.1,
	1.1.2.3.6.2
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19754/player/app/gtk

Modified Files:
      Tag: hxclient_3_4_7_atlas
	hxemptycollectionlabel.cpp 
Log Message:
Implemented Empty Collection popup width info. propagation.

The Empty Collection Label implementation was missing automatic size_request handling feature.

Also, even if its view parent requested adequate sizes, view's GtkScrolledWindow parent will just be the mean parent that ignore child's size_request() and just show the scrollbar, instead of growing larger.

For the usage of Empty Collection Label
(that displays "[No Existing Playlists]" when the collection is empty)
it is undesirable to have to use the scrollbar to reveal the entire message.
The GtkScrolledWindow should grow large enough to accommodate the message.

This change enables propagation of width info. to the popup window parent, or the GtkScrolledWindow "grandparent".

A "size-request" signal handler is hooked onto the appropriate target ancestor widget to intercept the end of its size_request().
The signal handler then emits the "size-request" signal to the corresponding Empty Collection popup, to obtain its size.
The hardcoded focus line widths are added to this width for the label to clear focus lines, avoiding visual defect.

This Empty Collection popup width affects the target ancestor widget only when the ancestor width is too small.

Files Modified:
player/app/gtk/hxemptycollectionlabel.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004363.html



Index: hxemptycollectionlabel.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/hxemptycollectionlabel.cpp,v
retrieving revision 1.1.2.3.6.1
retrieving revision 1.1.2.3.6.2
diff -u -d -r1.1.2.3.6.1 -r1.1.2.3.6.2
--- hxemptycollectionlabel.cpp	13 May 2009 05:26:25 -0000	1.1.2.3.6.1
+++ hxemptycollectionlabel.cpp	31 Jul 2009 19:08:06 -0000	1.1.2.3.6.2
@@ -48,12 +48,15 @@
 
 #include "hxemptycollectionlabel.h"
 #include "hxplayer-i18n.h"
+#include "hxtlogutil.h"
 
 static const gchar *hx_empty_collection_message = N_("There are no items to show in this view.");
 
 // GQuark string associated with previously created Empty Collection popup.
 static const gchar *hx_empty_collection_quark_string = "empty_collection_popup";
 
+const gint g_clear_focus_line_x = 4, g_clear_focus_line_y = 4;  // Keep clear of focus lines to avoid blocking part of them.
+
 // Returns the pointer to Empty Collection popup GtkWindow object.
 GtkWidget*
 hx_empty_collection_popup_get_from_view(GtkWidget *view_widget)
@@ -82,7 +85,67 @@
     return;
 }
 
+// Convention: Use "size_request" in function name only for functions 
+//   that are actually used as size_request() functions.
+//   Use "size_req" in function name for functions that can't be used as size_request() functions,
+//   but only referring to it sematically.
 
+// Override parent's size_request() to propagate popup_window's width info. to parent_window_widget.
+static void
+hx_empty_collection_ancestor_size_req_callback(GtkWidget *ancestor_widget, 
+                                               GtkRequisition *requisition,
+                                               gpointer user_data)  // popup_widget
+{
+    GtkWidget *popup_widget = GTK_WIDGET(user_data);
+    g_return_if_fail( GTK_IS_WINDOW(popup_widget) );
+
+    GtkRequisition popup_requisition;
+    gint desired_parent_width = 0;  // From the view from Empty Collection popup.
+
+    // Compute associated Empty Collection popup size and 
+    // make GtkScrolledWindow, if present, or if not, the view,
+    // requests at least the desired width.
+    g_signal_emit_by_name(popup_widget, "size_request", &popup_requisition);
+
+    desired_parent_width = popup_requisition.width + 2 * g_clear_focus_line_x;
+
+    if (desired_parent_width > requisition->width)
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_ancestor_size_req_callback(): Empty Collection popup enlarged the target ancestor's width from %d to %d", requisition->width, desired_parent_width);
+
+        requisition->width = desired_parent_width;
+    }
+    return;
+}
+
+
+// Connect to "size_request" signal in parent_window_widget or 
+// its (parent_window_widget) GtkScrolledWindow parent's class as appropriate.
+static void
+hx_empty_collection_width_propagate_setup(GtkWidget *parent_window_widget, GtkWidget *popup_widget)
+{
+    GtkWidget *target_widget = NULL;
+
+    // Is the view resided immediately inside a GtkScrolledWindow?
+    if ( GTK_IS_SCROLLED_WINDOW(parent_window_widget->parent) )
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Is scrolled window.");
+        target_widget = parent_window_widget->parent;
+    }
+    else
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Not a scrolled window.");
+        target_widget = parent_window_widget;
+    }
+
+    HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): parent_window_widget = %p, popup_widget = %p, target_widget = %p", parent_window_widget, popup_widget, target_widget);
+
+    g_signal_connect(target_widget,
+                     "size-request", G_CALLBACK(hx_empty_collection_ancestor_size_req_callback),
+                     (gpointer) popup_widget);
+
+    return;
+}
 
 static void 
 hx_empty_collection_popup_calculate_show(GtkTreeModel *model, GtkWidget *popup_widget)
@@ -198,12 +261,11 @@
 hx_empty_collection_popup_parent_realize_callback(GtkWidget *parent_window_widget, 
                                                   gpointer user_data)   // NULL or customized message.
 {
-    gint x = 4, y = 4;  // Keep clear of focus lines to avoid blocking part of them.
     GdkWindow *parent_window = NULL;
     GtkWidget *popup_widget = NULL;
     GtkTreeModel *model = NULL;
 
-    const gchar *message = user_data ? (const gchar *)user_data : _(hx_empty_collection_message);
+    const gchar *message = user_data ? (const gchar *)user_data : gettext(hx_empty_collection_message);
 
     if (GTK_IS_TREE_VIEW(parent_window_widget))
     {
@@ -220,12 +282,12 @@
 
     if (popup_widget) 
     {
-        printf("Note: Empty Collection popup_widget already exist.\n\n");
+        // Parent just realized. Empty Collection popup usually wouldn't exist yet.
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_popup_parent_realize_callback(): Empty Collection popup_widget already exist. parent_window_widget = %p, user_data = %s", parent_window_widget, user_data);
     }
-
-    // Create Empty Collection popup if it doesn't exist yet.
-    if (!popup_widget)
+    else
     {
+        // Create Empty Collection popup if it doesn't exist yet.
         popup_widget = gtk_window_new(GTK_WINDOW_POPUP);
         g_return_if_fail(popup_widget);
         hx_empty_collection_popup_set_at_view(parent_window_widget, popup_widget);
@@ -262,11 +324,14 @@
         // Make sure that popup_widget is realized.
         gtk_widget_realize(popup_widget);
 
-        gdk_window_reparent(popup_widget->window, parent_window, x, y);
+        gdk_window_reparent(popup_widget->window, parent_window, g_clear_focus_line_x, g_clear_focus_line_y);
 
         // Even though GdkWindow coords are set above, GtkWidget will eventually control the coords.
         // So, set it at GtkWidget too.
-        gtk_window_move(GTK_WINDOW(popup_widget), x, y);
+        gtk_window_move(GTK_WINDOW(popup_widget), g_clear_focus_line_x, g_clear_focus_line_y);
+
+        // Propagate popup_widget's width info. to parent_window_widget's resize_request().
+        hx_empty_collection_width_propagate_setup(parent_window_widget, popup_widget);
 
         // Don't show the GtkWindow (Top-level container) cause it would be 
         // immediately (realized and) mapped. 


From dyek at helixcommunity.org  Fri Jul 31 12:08:11 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Fri Jul 31 17:33:18 2009
Subject: [Player-cvs] app/gtk hxemptycollectionlabel.cpp, 1.1.2.3.6.1,
	1.1.2.3.6.2
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19754/player/app/gtk

Modified Files:
      Tag: hxclient_3_4_7_atlas
	hxemptycollectionlabel.cpp 
Log Message:
Implemented Empty Collection popup width info. propagation.

The Empty Collection Label implementation was missing automatic size_request handling feature.

Also, even if its view parent requested adequate sizes, view's GtkScrolledWindow parent will just be the mean parent that ignore child's size_request() and just show the scrollbar, instead of growing larger.

For the usage of Empty Collection Label
(that displays "[No Existing Playlists]" when the collection is empty)
it is undesirable to have to use the scrollbar to reveal the entire message.
The GtkScrolledWindow should grow large enough to accommodate the message.

This change enables propagation of width info. to the popup window parent, or the GtkScrolledWindow "grandparent".

A "size-request" signal handler is hooked onto the appropriate target ancestor widget to intercept the end of its size_request().
The signal handler then emits the "size-request" signal to the corresponding Empty Collection popup, to obtain its size.
The hardcoded focus line widths are added to this width for the label to clear focus lines, avoiding visual defect.

This Empty Collection popup width affects the target ancestor widget only when the ancestor width is too small.

Files Modified:
player/app/gtk/hxemptycollectionlabel.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004363.html



Index: hxemptycollectionlabel.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/hxemptycollectionlabel.cpp,v
retrieving revision 1.1.2.3.6.1
retrieving revision 1.1.2.3.6.2
diff -u -d -r1.1.2.3.6.1 -r1.1.2.3.6.2
--- hxemptycollectionlabel.cpp	13 May 2009 05:26:25 -0000	1.1.2.3.6.1
+++ hxemptycollectionlabel.cpp	31 Jul 2009 19:08:06 -0000	1.1.2.3.6.2
@@ -48,12 +48,15 @@
 
 #include "hxemptycollectionlabel.h"
 #include "hxplayer-i18n.h"
+#include "hxtlogutil.h"
 
 static const gchar *hx_empty_collection_message = N_("There are no items to show in this view.");
 
 // GQuark string associated with previously created Empty Collection popup.
 static const gchar *hx_empty_collection_quark_string = "empty_collection_popup";
 
+const gint g_clear_focus_line_x = 4, g_clear_focus_line_y = 4;  // Keep clear of focus lines to avoid blocking part of them.
+
 // Returns the pointer to Empty Collection popup GtkWindow object.
 GtkWidget*
 hx_empty_collection_popup_get_from_view(GtkWidget *view_widget)
@@ -82,7 +85,67 @@
     return;
 }
 
+// Convention: Use "size_request" in function name only for functions 
+//   that are actually used as size_request() functions.
+//   Use "size_req" in function name for functions that can't be used as size_request() functions,
+//   but only referring to it sematically.
 
+// Override parent's size_request() to propagate popup_window's width info. to parent_window_widget.
+static void
+hx_empty_collection_ancestor_size_req_callback(GtkWidget *ancestor_widget, 
+                                               GtkRequisition *requisition,
+                                               gpointer user_data)  // popup_widget
+{
+    GtkWidget *popup_widget = GTK_WIDGET(user_data);
+    g_return_if_fail( GTK_IS_WINDOW(popup_widget) );
+
+    GtkRequisition popup_requisition;
+    gint desired_parent_width = 0;  // From the view from Empty Collection popup.
+
+    // Compute associated Empty Collection popup size and 
+    // make GtkScrolledWindow, if present, or if not, the view,
+    // requests at least the desired width.
+    g_signal_emit_by_name(popup_widget, "size_request", &popup_requisition);
+
+    desired_parent_width = popup_requisition.width + 2 * g_clear_focus_line_x;
+
+    if (desired_parent_width > requisition->width)
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_ancestor_size_req_callback(): Empty Collection popup enlarged the target ancestor's width from %d to %d", requisition->width, desired_parent_width);
+
+        requisition->width = desired_parent_width;
+    }
+    return;
+}
+
+
+// Connect to "size_request" signal in parent_window_widget or 
+// its (parent_window_widget) GtkScrolledWindow parent's class as appropriate.
+static void
+hx_empty_collection_width_propagate_setup(GtkWidget *parent_window_widget, GtkWidget *popup_widget)
+{
+    GtkWidget *target_widget = NULL;
+
+    // Is the view resided immediately inside a GtkScrolledWindow?
+    if ( GTK_IS_SCROLLED_WINDOW(parent_window_widget->parent) )
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Is scrolled window.");
+        target_widget = parent_window_widget->parent;
+    }
+    else
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Not a scrolled window.");
+        target_widget = parent_window_widget;
+    }
+
+    HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): parent_window_widget = %p, popup_widget = %p, target_widget = %p", parent_window_widget, popup_widget, target_widget);
+
+    g_signal_connect(target_widget,
+                     "size-request", G_CALLBACK(hx_empty_collection_ancestor_size_req_callback),
+                     (gpointer) popup_widget);
+
+    return;
+}
 
 static void 
 hx_empty_collection_popup_calculate_show(GtkTreeModel *model, GtkWidget *popup_widget)
@@ -198,12 +261,11 @@
 hx_empty_collection_popup_parent_realize_callback(GtkWidget *parent_window_widget, 
                                                   gpointer user_data)   // NULL or customized message.
 {
-    gint x = 4, y = 4;  // Keep clear of focus lines to avoid blocking part of them.
     GdkWindow *parent_window = NULL;
     GtkWidget *popup_widget = NULL;
     GtkTreeModel *model = NULL;
 
-    const gchar *message = user_data ? (const gchar *)user_data : _(hx_empty_collection_message);
+    const gchar *message = user_data ? (const gchar *)user_data : gettext(hx_empty_collection_message);
 
     if (GTK_IS_TREE_VIEW(parent_window_widget))
     {
@@ -220,12 +282,12 @@
 
     if (popup_widget) 
     {
-        printf("Note: Empty Collection popup_widget already exist.\n\n");
+        // Parent just realized. Empty Collection popup usually wouldn't exist yet.
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_popup_parent_realize_callback(): Empty Collection popup_widget already exist. parent_window_widget = %p, user_data = %s", parent_window_widget, user_data);
     }
-
-    // Create Empty Collection popup if it doesn't exist yet.
-    if (!popup_widget)
+    else
     {
+        // Create Empty Collection popup if it doesn't exist yet.
         popup_widget = gtk_window_new(GTK_WINDOW_POPUP);
         g_return_if_fail(popup_widget);
         hx_empty_collection_popup_set_at_view(parent_window_widget, popup_widget);
@@ -262,11 +324,14 @@
         // Make sure that popup_widget is realized.
         gtk_widget_realize(popup_widget);
 
-        gdk_window_reparent(popup_widget->window, parent_window, x, y);
+        gdk_window_reparent(popup_widget->window, parent_window, g_clear_focus_line_x, g_clear_focus_line_y);
 
         // Even though GdkWindow coords are set above, GtkWidget will eventually control the coords.
         // So, set it at GtkWidget too.
-        gtk_window_move(GTK_WINDOW(popup_widget), x, y);
+        gtk_window_move(GTK_WINDOW(popup_widget), g_clear_focus_line_x, g_clear_focus_line_y);
+
+        // Propagate popup_widget's width info. to parent_window_widget's resize_request().
+        hx_empty_collection_width_propagate_setup(parent_window_widget, popup_widget);
 
         // Don't show the GtkWindow (Top-level container) cause it would be 
         // immediately (realized and) mapped. 


From dyek at helixcommunity.org  Fri Jul 31 12:10:14 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Fri Jul 31 17:35:24 2009
Subject: [Player-cvs] app/gtk hxemptycollectionlabel.cpp,1.1.2.4,1.1.2.5
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19941

Modified Files:
      Tag: hxclient_3_1_0_atlas
	hxemptycollectionlabel.cpp 
Log Message:
Implemented Empty Collection popup width info. propagation.

The Empty Collection Label implementation was missing automatic size_request handling feature.

Also, even if its view parent requested adequate sizes, view's GtkScrolledWindow parent will just be the mean parent that ignore child's size_request() and just show the scrollbar, instead of growing larger.

For the usage of Empty Collection Label
(that displays "[No Existing Playlists]" when the collection is empty)
it is undesirable to have to use the scrollbar to reveal the entire message.
The GtkScrolledWindow should grow large enough to accommodate the message.

This change enables propagation of width info. to the popup window parent, or the GtkScrolledWindow "grandparent".

A "size-request" signal handler is hooked onto the appropriate target ancestor widget to intercept the end of its size_request().
The signal handler then emits the "size-request" signal to the corresponding Empty Collection popup, to obtain its size.
The hardcoded focus line widths are added to this width for the label to clear focus lines, avoiding visual defect. 

This Empty Collection popup width affects the target ancestor widget only when the ancestor width is too small.

Files Modified:
player/app/gtk/hxemptycollectionlabel.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004363.html



Index: hxemptycollectionlabel.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/hxemptycollectionlabel.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- hxemptycollectionlabel.cpp	13 May 2009 05:14:42 -0000	1.1.2.4
+++ hxemptycollectionlabel.cpp	31 Jul 2009 19:10:12 -0000	1.1.2.5
@@ -48,12 +48,15 @@
 
 #include "hxemptycollectionlabel.h"
 #include "hxplayer-i18n.h"
+#include "hxtlogutil.h"
 
 static const gchar *hx_empty_collection_message = N_("There are no items to show in this view.");
 
 // GQuark string associated with previously created Empty Collection popup.
 static const gchar *hx_empty_collection_quark_string = "empty_collection_popup";
 
+const gint g_clear_focus_line_x = 4, g_clear_focus_line_y = 4;  // Keep clear of focus lines to avoid blocking part of them.
+
 // Returns the pointer to Empty Collection popup GtkWindow object.
 GtkWidget*
 hx_empty_collection_popup_get_from_view(GtkWidget *view_widget)
@@ -82,7 +85,67 @@
     return;
 }
 
+// Convention: Use "size_request" in function name only for functions 
+//   that are actually used as size_request() functions.
+//   Use "size_req" in function name for functions that can't be used as size_request() functions,
+//   but only referring to it sematically.
 
+// Override parent's size_request() to propagate popup_window's width info. to parent_window_widget.
+static void
+hx_empty_collection_ancestor_size_req_callback(GtkWidget *ancestor_widget, 
+                                               GtkRequisition *requisition,
+                                               gpointer user_data)  // popup_widget
+{
+    GtkWidget *popup_widget = GTK_WIDGET(user_data);
+    g_return_if_fail( GTK_IS_WINDOW(popup_widget) );
+
+    GtkRequisition popup_requisition;
+    gint desired_parent_width = 0;  // From the view from Empty Collection popup.
+
+    // Compute associated Empty Collection popup size and 
+    // make GtkScrolledWindow, if present, or if not, the view,
+    // requests at least the desired width.
+    g_signal_emit_by_name(popup_widget, "size_request", &popup_requisition);
+
+    desired_parent_width = popup_requisition.width + 2 * g_clear_focus_line_x;
+
+    if (desired_parent_width > requisition->width)
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_ancestor_size_req_callback(): Empty Collection popup enlarged the target ancestor's width from %d to %d", requisition->width, desired_parent_width);
+
+        requisition->width = desired_parent_width;
+    }
+    return;
+}
+
+
+// Connect to "size_request" signal in parent_window_widget or 
+// its (parent_window_widget) GtkScrolledWindow parent's class as appropriate.
+static void
+hx_empty_collection_width_propagate_setup(GtkWidget *parent_window_widget, GtkWidget *popup_widget)
+{
+    GtkWidget *target_widget = NULL;
+
+    // Is the view resided immediately inside a GtkScrolledWindow?
+    if ( GTK_IS_SCROLLED_WINDOW(parent_window_widget->parent) )
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Is scrolled window.");
+        target_widget = parent_window_widget->parent;
+    }
+    else
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Not a scrolled window.");
+        target_widget = parent_window_widget;
+    }
+
+    HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): parent_window_widget = %p, popup_widget = %p, target_widget = %p", parent_window_widget, popup_widget, target_widget);
+
+    g_signal_connect(target_widget,
+                     "size-request", G_CALLBACK(hx_empty_collection_ancestor_size_req_callback),
+                     (gpointer) popup_widget);
+
+    return;
+}
 
 static void 
 hx_empty_collection_popup_calculate_show(GtkTreeModel *model, GtkWidget *popup_widget)
@@ -198,12 +261,11 @@
 hx_empty_collection_popup_parent_realize_callback(GtkWidget *parent_window_widget, 
                                                   gpointer user_data)   // NULL or customized message.
 {
-    gint x = 4, y = 4;  // Keep clear of focus lines to avoid blocking part of them.
     GdkWindow *parent_window = NULL;
     GtkWidget *popup_widget = NULL;
     GtkTreeModel *model = NULL;
 
-    const gchar *message = user_data ? (const gchar *)user_data : _(hx_empty_collection_message);
+    const gchar *message = user_data ? (const gchar *)user_data : gettext(hx_empty_collection_message);
 
     if (GTK_IS_TREE_VIEW(parent_window_widget))
     {
@@ -220,12 +282,12 @@
 
     if (popup_widget) 
     {
-        printf("Note: Empty Collection popup_widget already exist.\n\n");
+        // Parent just realized. Empty Collection popup usually wouldn't exist yet.
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_popup_parent_realize_callback(): Empty Collection popup_widget already exist. parent_window_widget = %p, user_data = %s", parent_window_widget, user_data);
     }
-
-    // Create Empty Collection popup if it doesn't exist yet.
-    if (!popup_widget)
+    else
     {
+        // Create Empty Collection popup if it doesn't exist yet.
         popup_widget = gtk_window_new(GTK_WINDOW_POPUP);
         g_return_if_fail(popup_widget);
         hx_empty_collection_popup_set_at_view(parent_window_widget, popup_widget);
@@ -262,11 +324,14 @@
         // Make sure that popup_widget is realized.
         gtk_widget_realize(popup_widget);
 
-        gdk_window_reparent(popup_widget->window, parent_window, x, y);
+        gdk_window_reparent(popup_widget->window, parent_window, g_clear_focus_line_x, g_clear_focus_line_y);
 
         // Even though GdkWindow coords are set above, GtkWidget will eventually control the coords.
         // So, set it at GtkWidget too.
-        gtk_window_move(GTK_WINDOW(popup_widget), x, y);
+        gtk_window_move(GTK_WINDOW(popup_widget), g_clear_focus_line_x, g_clear_focus_line_y);
+
+        // Propagate popup_widget's width info. to parent_window_widget's resize_request().
+        hx_empty_collection_width_propagate_setup(parent_window_widget, popup_widget);
 
         // Don't show the GtkWindow (Top-level container) cause it would be 
         // immediately (realized and) mapped. 


From dyek at helixcommunity.org  Fri Jul 31 12:10:14 2009
From: dyek at helixcommunity.org (dyek@helixcommunity.org)
Date: Fri Jul 31 17:35:24 2009
Subject: [Player-cvs] app/gtk hxemptycollectionlabel.cpp,1.1.2.4,1.1.2.5
Message-ID: 

Update of /cvsroot/player/app/gtk
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19941

Modified Files:
      Tag: hxclient_3_1_0_atlas
	hxemptycollectionlabel.cpp 
Log Message:
Implemented Empty Collection popup width info. propagation.

The Empty Collection Label implementation was missing automatic size_request handling feature.

Also, even if its view parent requested adequate sizes, view's GtkScrolledWindow parent will just be the mean parent that ignore child's size_request() and just show the scrollbar, instead of growing larger.

For the usage of Empty Collection Label
(that displays "[No Existing Playlists]" when the collection is empty)
it is undesirable to have to use the scrollbar to reveal the entire message.
The GtkScrolledWindow should grow large enough to accommodate the message.

This change enables propagation of width info. to the popup window parent, or the GtkScrolledWindow "grandparent".

A "size-request" signal handler is hooked onto the appropriate target ancestor widget to intercept the end of its size_request().
The signal handler then emits the "size-request" signal to the corresponding Empty Collection popup, to obtain its size.
The hardcoded focus line widths are added to this width for the label to clear focus lines, avoiding visual defect. 

This Empty Collection popup width affects the target ancestor widget only when the ancestor width is too small.

Files Modified:
player/app/gtk/hxemptycollectionlabel.cpp


Refer to the following URL for more information:
http://lists.helixcommunity.org/pipermail/player-dev/2009-July/004363.html



Index: hxemptycollectionlabel.cpp
===================================================================
RCS file: /cvsroot/player/app/gtk/hxemptycollectionlabel.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- hxemptycollectionlabel.cpp	13 May 2009 05:14:42 -0000	1.1.2.4
+++ hxemptycollectionlabel.cpp	31 Jul 2009 19:10:12 -0000	1.1.2.5
@@ -48,12 +48,15 @@
 
 #include "hxemptycollectionlabel.h"
 #include "hxplayer-i18n.h"
+#include "hxtlogutil.h"
 
 static const gchar *hx_empty_collection_message = N_("There are no items to show in this view.");
 
 // GQuark string associated with previously created Empty Collection popup.
 static const gchar *hx_empty_collection_quark_string = "empty_collection_popup";
 
+const gint g_clear_focus_line_x = 4, g_clear_focus_line_y = 4;  // Keep clear of focus lines to avoid blocking part of them.
+
 // Returns the pointer to Empty Collection popup GtkWindow object.
 GtkWidget*
 hx_empty_collection_popup_get_from_view(GtkWidget *view_widget)
@@ -82,7 +85,67 @@
     return;
 }
 
+// Convention: Use "size_request" in function name only for functions 
+//   that are actually used as size_request() functions.
+//   Use "size_req" in function name for functions that can't be used as size_request() functions,
+//   but only referring to it sematically.
 
+// Override parent's size_request() to propagate popup_window's width info. to parent_window_widget.
+static void
+hx_empty_collection_ancestor_size_req_callback(GtkWidget *ancestor_widget, 
+                                               GtkRequisition *requisition,
+                                               gpointer user_data)  // popup_widget
+{
+    GtkWidget *popup_widget = GTK_WIDGET(user_data);
+    g_return_if_fail( GTK_IS_WINDOW(popup_widget) );
+
+    GtkRequisition popup_requisition;
+    gint desired_parent_width = 0;  // From the view from Empty Collection popup.
+
+    // Compute associated Empty Collection popup size and 
+    // make GtkScrolledWindow, if present, or if not, the view,
+    // requests at least the desired width.
+    g_signal_emit_by_name(popup_widget, "size_request", &popup_requisition);
+
+    desired_parent_width = popup_requisition.width + 2 * g_clear_focus_line_x;
+
+    if (desired_parent_width > requisition->width)
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_ancestor_size_req_callback(): Empty Collection popup enlarged the target ancestor's width from %d to %d", requisition->width, desired_parent_width);
+
+        requisition->width = desired_parent_width;
+    }
+    return;
+}
+
+
+// Connect to "size_request" signal in parent_window_widget or 
+// its (parent_window_widget) GtkScrolledWindow parent's class as appropriate.
+static void
+hx_empty_collection_width_propagate_setup(GtkWidget *parent_window_widget, GtkWidget *popup_widget)
+{
+    GtkWidget *target_widget = NULL;
+
+    // Is the view resided immediately inside a GtkScrolledWindow?
+    if ( GTK_IS_SCROLLED_WINDOW(parent_window_widget->parent) )
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Is scrolled window.");
+        target_widget = parent_window_widget->parent;
+    }
+    else
+    {
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): Not a scrolled window.");
+        target_widget = parent_window_widget;
+    }
+
+    HXLOGL4(HXLOG_TLCX, "hx_empty_collection_width_propagate_setup(): parent_window_widget = %p, popup_widget = %p, target_widget = %p", parent_window_widget, popup_widget, target_widget);
+
+    g_signal_connect(target_widget,
+                     "size-request", G_CALLBACK(hx_empty_collection_ancestor_size_req_callback),
+                     (gpointer) popup_widget);
+
+    return;
+}
 
 static void 
 hx_empty_collection_popup_calculate_show(GtkTreeModel *model, GtkWidget *popup_widget)
@@ -198,12 +261,11 @@
 hx_empty_collection_popup_parent_realize_callback(GtkWidget *parent_window_widget, 
                                                   gpointer user_data)   // NULL or customized message.
 {
-    gint x = 4, y = 4;  // Keep clear of focus lines to avoid blocking part of them.
     GdkWindow *parent_window = NULL;
     GtkWidget *popup_widget = NULL;
     GtkTreeModel *model = NULL;
 
-    const gchar *message = user_data ? (const gchar *)user_data : _(hx_empty_collection_message);
+    const gchar *message = user_data ? (const gchar *)user_data : gettext(hx_empty_collection_message);
 
     if (GTK_IS_TREE_VIEW(parent_window_widget))
     {
@@ -220,12 +282,12 @@
 
     if (popup_widget) 
     {
-        printf("Note: Empty Collection popup_widget already exist.\n\n");
+        // Parent just realized. Empty Collection popup usually wouldn't exist yet.
+        HXLOGL4(HXLOG_TLCX, "hx_empty_collection_popup_parent_realize_callback(): Empty Collection popup_widget already exist. parent_window_widget = %p, user_data = %s", parent_window_widget, user_data);
     }
-
-    // Create Empty Collection popup if it doesn't exist yet.
-    if (!popup_widget)
+    else
     {
+        // Create Empty Collection popup if it doesn't exist yet.
         popup_widget = gtk_window_new(GTK_WINDOW_POPUP);
         g_return_if_fail(popup_widget);
         hx_empty_collection_popup_set_at_view(parent_window_widget, popup_widget);
@@ -262,11 +324,14 @@
         // Make sure that popup_widget is realized.
         gtk_widget_realize(popup_widget);
 
-        gdk_window_reparent(popup_widget->window, parent_window, x, y);
+        gdk_window_reparent(popup_widget->window, parent_window, g_clear_focus_line_x, g_clear_focus_line_y);
 
         // Even though GdkWindow coords are set above, GtkWidget will eventually control the coords.
         // So, set it at GtkWidget too.
-        gtk_window_move(GTK_WINDOW(popup_widget), x, y);
+        gtk_window_move(GTK_WINDOW(popup_widget), g_clear_focus_line_x, g_clear_focus_line_y);
+
+        // Propagate popup_widget's width info. to parent_window_widget's resize_request().
+        hx_empty_collection_width_propagate_setup(parent_window_widget, popup_widget);
 
         // Don't show the GtkWindow (Top-level container) cause it would be 
         // immediately (realized and) mapped. 


 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.