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