marlin r1346 - in trunk: marlin src



Author: iain
Date: Wed Dec 24 16:53:16 2008
New Revision: 1346
URL: http://svn.gnome.org/viewvc/marlin?rev=1346&view=rev

Log:
Allow the record dialog to lock the marlin owner until it is closed.

Modified:
   trunk/marlin/marlin-jack-record.c
   trunk/marlin/marlin-program.c
   trunk/marlin/marlin-program.h
   trunk/src/marlin-record.c
   trunk/src/marlin-window.c

Modified: trunk/marlin/marlin-jack-record.c
==============================================================================
--- trunk/marlin/marlin-jack-record.c	(original)
+++ trunk/marlin/marlin-jack-record.c	Wed Dec 24 16:53:16 2008
@@ -476,6 +476,7 @@
 		priv->reader_id = 0;
 		g_signal_emit (jack, signals[FINISHED], 0);
 
+		priv->mode = MARLIN_JACK_RECORD_MODE_STOPPED;
 		return FALSE;
 	} else {
 		priv->mode = MARLIN_JACK_RECORD_MODE_RECORDING;

Modified: trunk/marlin/marlin-program.c
==============================================================================
--- trunk/marlin/marlin-program.c	(original)
+++ trunk/marlin/marlin-program.c	Wed Dec 24 16:53:16 2008
@@ -47,6 +47,8 @@
 
 	jack_client_t *client;
 	guint current_owner; /* The current owner of jack */
+	gboolean locked; /* Has the owner locked it */
+
 	guint owner_count; /* The number of owners */
 
 	MarlinJackPlay *player;
@@ -317,10 +319,15 @@
  */
 void
 marlin_program_acquire_jack (MarlinProgram *program,
-			     guint          owner_id)
+			     guint          owner_id,
+			     gboolean       locked)
 {
 	MarlinProgramPrivate *priv = program->priv;
 
+	if (priv->locked) {
+		return;
+	}
+
 	if (owner_id == priv->current_owner) {
 		return;
 	}
@@ -332,6 +339,7 @@
 	}
 
 	priv->current_owner = owner_id;
+	priv->locked = locked;
 	g_signal_emit (program, signals[JACK_OWNER_CHANGED], 0, owner_id);
 }
 
@@ -349,6 +357,7 @@
 	}
 
 	priv->current_owner = MARLIN_PROGRAM_JACK_UNOWNED;
+	priv->locked = FALSE;
 	g_signal_emit (program, signals[JACK_OWNER_CHANGED], 0,
 		       MARLIN_PROGRAM_JACK_UNOWNED);
 }

Modified: trunk/marlin/marlin-program.h
==============================================================================
--- trunk/marlin/marlin-program.h	(original)
+++ trunk/marlin/marlin-program.h	Wed Dec 24 16:53:16 2008
@@ -67,7 +67,8 @@
 
 guint marlin_program_request_jack_owner_id (MarlinProgram *program);
 void marlin_program_acquire_jack (MarlinProgram *program,
-				  guint          owner_id);
+				  guint          owner_id,
+				  gboolean       locked);
 void marlin_program_release_jack (MarlinProgram *program,
 				  guint          owner_id);
 

Modified: trunk/src/marlin-record.c
==============================================================================
--- trunk/src/marlin-record.c	(original)
+++ trunk/src/marlin-record.c	Wed Dec 24 16:53:16 2008
@@ -664,8 +664,8 @@
 	rd->recorder = (MarlinJack *) marlin_program_get_recorder (program);
 	rd->jack_owner_id = marlin_program_request_jack_owner_id (program);
 
-	/* Should lock owner somehow */
-	marlin_program_acquire_jack (program, rd->jack_owner_id);
+	/* Acquire jack, and lock it */
+	marlin_program_acquire_jack (program, rd->jack_owner_id, TRUE);
 
 	if (rd->recorder) {
 		g_signal_connect (rd->recorder, "record-finished",

Modified: trunk/src/marlin-window.c
==============================================================================
--- trunk/src/marlin-window.c	(original)
+++ trunk/src/marlin-window.c	Wed Dec 24 16:53:16 2008
@@ -640,7 +640,7 @@
 
 	/* Will emit jack-owner-changed signal if window is allowed to
 	   own jack */
-	marlin_program_acquire_jack (program, priv->jack_owner_id);
+	marlin_program_acquire_jack (program, priv->jack_owner_id, FALSE);
 
 	return FALSE;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]