r1256 - trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep

jiang_li at sita.openmoko.org jiang_li at sita.openmoko.org
Wed Mar 7 06:59:49 CET 2007


Author: jiang_li
Date: 2007-03-07 06:59:44 +0100 (Wed, 07 Mar 2007)
New Revision: 1256

Modified:
   trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/main.c
   trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/mainwin.c
Log:
This commit modify the code to ensure that only one instance of simple mediaplayer exists. 


Modified: trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/main.c	2007-03-06 09:15:57 UTC (rev 1255)
+++ trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/main.c	2007-03-07 05:59:44 UTC (rev 1256)
@@ -880,6 +880,14 @@
     gtk_widget_destroy(dialog);
 }
 */
+
+static void
+handler_sigusr1(int value)
+{
+    openmoko_show_created_window();
+    signal(SIGUSR1, handler_sigusr1);
+}
+
 static pid_t
 testlock(char* fname)
 {
@@ -948,14 +956,15 @@
 main(gint argc, gchar ** argv)
 {
     //added by lijiang
-    pid_t lockmusicplayer;
-    lockmusicplayer = testlock("/tmp/musicplayer.lock");
-    if(lockmusicplayer > 0)
+    pid_t locksimplemusicplayer;
+    locksimplemusicplayer = testlock("/tmp/simplemusicplayer.lock");
+    if(locksimplemusicplayer > 0)
     {
 	 printf("Already running a instance\n");
+	 kill(locksimplemusicplayer, SIGUSR1);
 	 return 0;
     }
-    setlock("/tmp/musicplayer.lock");
+    setlock("/tmp/simplemusicplayer.lock");
     //added end
 	
     //BmpCmdLineOpt options;
@@ -1094,6 +1103,8 @@
 //    g_free(audio_path);
    
     openmoko_mainwin_create();
+
+    signal(SIGUSR1, handler_sigusr1);
     
     gtk_main();
 

Modified: trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/mainwin.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/mainwin.c	2007-03-06 09:15:57 UTC (rev 1255)
+++ trunk/src/target/OM-2007/applications/openmoko-simplemediaplayer/beep/mainwin.c	2007-03-07 05:59:44 UTC (rev 1256)
@@ -4144,6 +4144,20 @@
     g_free(prefix);
 }
 
+static GtkWidget* created_mainwin = NULL;
+
+void
+openmoko_show_created_window()
+{
+    if(created_mainwin == NULL)
+    {
+        g_print("can not get the saved main window pointer\n");
+	return;
+    }
+    gtk_window_present(GTK_WINDOW(created_mainwin));
+    return;
+}
+
 void 
 openmoko_mainwin_create()
 {
@@ -4166,12 +4180,15 @@
     
 //    MokoApplication *app = MOKO_APPLICATION(moko_application_get_instance());
 
-    MokoFingerWindow *window = MOKO_FINGER_WINDOW(moko_finger_window_new());
-    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(openmoko_main_quit), NULL);
-    gtk_window_set_decorated(GTK_WINDOW(window), FALSE);
+    MokoFingerWindow *mainwin = MOKO_FINGER_WINDOW(moko_finger_window_new());
+    g_signal_connect(G_OBJECT(mainwin), "destroy", G_CALLBACK(openmoko_main_quit), NULL);
+    gtk_window_set_decorated(GTK_WINDOW(mainwin), FALSE);
 
+    //save the main window pointer
+    created_mainwin = GTK_WIDGET(mainwin);
+
     fixed = MOKO_FIXED(moko_fixed_new());
-    moko_finger_window_set_contents(window, GTK_WIDGET(fixed));
+    moko_finger_window_set_contents(mainwin, GTK_WIDGET(fixed));
    
 /*******************************************/
     background_vbox = gtk_vbox_new(FALSE, 0);
@@ -4535,35 +4552,35 @@
     btn_set_center_image(GTK_BUTTON(playlist_button), GTK_IMAGE(image));
 /*******************************************/
     
-    gtk_widget_show_all(GTK_WIDGET(window));
-    gtk_window_present(GTK_WINDOW(window));
+    gtk_widget_show_all(GTK_WIDGET(mainwin));
+    gtk_window_present(GTK_WINDOW(mainwin));
     
-    gtk_widget_show(GTK_WIDGET(moko_finger_window_get_wheel(window)));
+    gtk_widget_show(GTK_WIDGET(moko_finger_window_get_wheel(mainwin)));
     
-    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(window)),
+    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(mainwin)),
 		    "press_left_up",
 		    G_CALLBACK(openmoko_wheel_press_left_up_cb),
 		    NULL);
-    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(window)),
+    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(mainwin)),
 		    "long_press_left_up",
 		    G_CALLBACK(openmoko_wheel_press_left_up_cb),
 		    NULL);
-    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(window)),
+    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(mainwin)),
 		    "press_right_down",
 		    G_CALLBACK(openmoko_wheel_press_right_down_cb),
 		    NULL);
-    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(window)),
+    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(mainwin)),
 		    "long_press_right_down",
 		    G_CALLBACK(openmoko_wheel_press_right_down_cb),
 		    NULL);
-    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(window)),
+    g_signal_connect(G_OBJECT(moko_finger_window_get_wheel(mainwin)),
 		    "press_bottom",
 		    G_CALLBACK(openmoko_main_quit),
 		    NULL);
 
     if(!tools)
     {
-        tools = MOKO_FINGER_TOOL_BOX(moko_finger_window_get_toolbox(MOKO_FINGER_WINDOW(window)));
+        tools = MOKO_FINGER_TOOL_BOX(moko_finger_window_get_toolbox(MOKO_FINGER_WINDOW(mainwin)));
        
 	prev_button = GTK_BUTTON(moko_finger_tool_box_add_button_without_label(MOKO_FINGER_TOOL_BOX(tools)));
         image_path = g_build_path("/", images_dir, "ico-previoustrack.png", NULL);
@@ -4608,4 +4625,6 @@
     dbus_bus_add_match(bus, "type='signal',interface='com.burtonini.dbus.Signal'", &error);
     dbus_connection_add_filter(bus, signal_filter, mainwin, NULL);
     //added end
+    
+    return;
 }





More information about the commitlog mailing list