marlin r1361 - in trunk: . marlin src



Author: iain
Date: Sun Feb 22 22:51:13 2009
New Revision: 1361
URL: http://svn.gnome.org/viewvc/marlin?rev=1361&view=rev

Log:
Pretend that we support LADSPA


Modified:
   trunk/ChangeLog
   trunk/config.h.in
   trunk/configure.in
   trunk/marlin/Makefile.am
   trunk/marlin/marlin-channel.c
   trunk/marlin/marlin-channel.h
   trunk/marlin/marlin-sample.c
   trunk/marlin/marlin-sample.h
   trunk/marlin/marlin-types.h
   trunk/src/Makefile.am

Modified: trunk/config.h.in
==============================================================================
--- trunk/config.h.in	(original)
+++ trunk/config.h.in	Sun Feb 22 22:51:13 2009
@@ -39,6 +39,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define if we have LADSPA */
+#undef HAVE_LADSPA
+
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #undef HAVE_LC_MESSAGES
 

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Sun Feb 22 22:51:13 2009
@@ -112,6 +112,24 @@
 AC_SUBST(SOUNDTOUCH_CFLAGS)
 AC_SUBST(SOUNDTOUCH_LIBS)
 
+AC_ARG_ENABLE(ladspa, AC_HELP_STRING([--enable-ladspa],[Enable support for LADSPA]), enable_ladspa="$enableval", enable_ladspa=no)
+
+if test "x$enable_ladspa" = "xyes"; then
+  AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
+  save_cflags="$CFLAGS"
+  CFLAGS="$CFLAGS -D_GNU_SOURCE"
+
+  AC_CHECK_LIB(dl, dlopen,
+    LADSPA_LIBS="-ldl",
+    HAVE_LADSPA="no")
+  CFLAGS="$save_cflags"
+  AC_SUBST(LADSPA_LIBS)
+
+  if test "x$HAVE_LADSPA" = "xyes"; then
+    AC_DEFINE(HAVE_LADSPA,1,[Define if we have LADSPA])
+  fi
+fi
+
 # Check for utility programs 
 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
 
@@ -230,3 +248,8 @@
   echo ""
   echo "Missing jackd - Marlin will not be able to play or record until it is installed. See http://jackaudio.org";
 fi
+if test "x$HAVE_LADSPA" = "xyes"; then
+  echo "LADSPA support:             yes"
+else
+  echo "LADSPA support:             no"
+fi

Modified: trunk/marlin/Makefile.am
==============================================================================
--- trunk/marlin/Makefile.am	(original)
+++ trunk/marlin/Makefile.am	Sun Feb 22 22:51:13 2009
@@ -73,7 +73,8 @@
 
 libmarlin_la_LIBADD =				\
 	libmarlin-soundtouch.la			\
-	$(MARLIN_LIBS)
+	$(MARLIN_LIBS)				\
+	$(LADSPA_LIBS)
 
 marlin_headers =				\
 	marlin-a11y-helper.h			\

Modified: trunk/marlin/marlin-channel.c
==============================================================================
--- trunk/marlin/marlin-channel.c	(original)
+++ trunk/marlin/marlin-channel.c	Sun Feb 22 22:51:13 2009
@@ -35,6 +35,10 @@
 #include <glib-object.h>
 #include <glib/gi18n.h>
 
+#ifdef HAVE_LADSPA
+#include <ladspa.h>
+#endif
+
 #include <marlin/marlin-block.h>
 #include <marlin/marlin-channel.h>
 #include <marlin/marlin-file-utils.h>
@@ -2407,3 +2411,18 @@
 
 	return ret;
 }
+
+gboolean
+marlin_channel_process_ladspa (MarlinChannel     *channel,
+			       LADSPA_Descriptor *ladspa,
+			       MarlinRange       *range,
+			       MarlinOperation   *operation,
+			       MarlinUndoContext *ctxt,
+			       GError           **error)
+{
+#ifdef HAVE_LADSPA
+	return TRUE;
+#else
+	return TRUE;
+#endif
+}

Modified: trunk/marlin/marlin-channel.h
==============================================================================
--- trunk/marlin/marlin-channel.h	(original)
+++ trunk/marlin/marlin-channel.h	Sun Feb 22 22:51:13 2009
@@ -56,9 +56,9 @@
 	/* LRU paging system */
 	GQueue *pages;
 
-	/* Channel's position in sample 
+	/* Channel's position in sample
 	   - it is up to the owning MarlinSample to set this correctly */
-	GstAudioChannelPosition position; 
+	GstAudioChannelPosition position;
 };
 
 MarlinChannel *marlin_channel_new (const char *filename,
@@ -208,4 +208,12 @@
 				   MarlinOperation   *operation,
 				   MarlinUndoContext *ctxt,
 				   GError           **error);
+
+gboolean marlin_channel_process_ladspa (MarlinChannel     *channel,
+					LADSPA_Descriptor *ladspa,
+					MarlinRange       *range,
+					MarlinOperation   *operation,
+					MarlinUndoContext *ctxt,
+					GError           **error);
+
 #endif

Modified: trunk/marlin/marlin-sample.c
==============================================================================
--- trunk/marlin/marlin-sample.c	(original)
+++ trunk/marlin/marlin-sample.c	Sun Feb 22 22:51:13 2009
@@ -30,6 +30,10 @@
 
 #include <gst/gst.h>
 
+#ifdef HAVE_LADSPA
+#include <ladspa.h>
+#endif
+
 #include <marlin/marlin-block.h>
 #include <marlin/marlin-sample.h>
 #include <marlin/marlin-channel.h>
@@ -681,7 +685,7 @@
 	gboolean ret;
 	guint64 total_frames;
 	int i;
-	
+
 	g_return_val_if_fail (IS_MARLIN_SAMPLE (src), NULL);
 
 	READ_LOCK (src->priv->lock);
@@ -689,7 +693,7 @@
 	channels = src->priv->channels;
 	total_frames = src->priv->number_of_frames;
 	READ_UNLOCK (src->priv->lock);
-	
+
 	sample = g_object_new (MARLIN_SAMPLE_TYPE,
 			       "filename", "untitled",
 			       "sample_rate", sample_rate,
@@ -703,7 +707,7 @@
 			src_channel = src->priv->channel_data->pdata[i];
 			dest_channel = sample->priv->channel_data->pdata[i];
 
-			ret = marlin_channel_copy_data (src_channel, 
+			ret = marlin_channel_copy_data (src_channel,
 							dest_channel,
 							range->start,
 							range->finish, error);
@@ -771,7 +775,7 @@
 	range.finish = src->priv->number_of_frames - 1;
 	range.coverage = MARLIN_COVERAGE_BOTH;
 	READ_UNLOCK (src->priv->lock);
-	
+
 	return marlin_sample_new_from_sample_with_range (src, &range, error);
 }
 
@@ -779,7 +783,7 @@
  * marlin_sample_new_from_selection:
  * @src: Original #MarlinSample
  * @error: A #GError
- * 
+ *
  * Creates new #MarlinSample from the selection on @src.
  *
  * Returns: A newly allocated #MarlinSample or NULL on failure.
@@ -797,7 +801,7 @@
 	marlin_sample_selection_get (src->priv->selection,
 				     &range.coverage,
 				     &range.start, &range.finish);
-	
+
 	return marlin_sample_new_from_sample_with_range (src, &range, error);
 }
 
@@ -816,7 +820,7 @@
 			   guint channel_num)
 {
 	MarlinChannel *channel;
-	
+
 	g_return_val_if_fail (IS_MARLIN_SAMPLE (sample), NULL);
 	g_return_val_if_fail (channel_num < sample->priv->channels, NULL);
 
@@ -991,36 +995,36 @@
 	case MARLIN_COVERAGE_BOTH:
 		for (i = 0; i < sample->priv->channel_data->len; i++) {
 			MarlinChannel *channel = sample->priv->channel_data->pdata[i];
-			marlin_channel_clear_range (channel, operation, 
-						    range->start, 
-						    range->finish, 
+			marlin_channel_clear_range (channel, operation,
+						    range->start,
+						    range->finish,
 						    ctxt, error);
 		}
-		
+
 		break;
 
 	case MARLIN_COVERAGE_LEFT:
-		marlin_channel_clear_range (sample->priv->channel_data->pdata[MARLIN_CHANNEL_LEFT], 
-					    operation, 
-					    range->start, range->finish, 
+		marlin_channel_clear_range (sample->priv->channel_data->pdata[MARLIN_CHANNEL_LEFT],
+					    operation,
+					    range->start, range->finish,
 					    ctxt, error);
 		break;
 
 	case MARLIN_COVERAGE_RIGHT:
 		if (sample->priv->channels != 2) {
 			g_warning ("Editting right channel on mono sample?");
-			
+
 			WRITE_UNLOCK (sample->priv->lock);
 			if (operation != NULL) {
 				marlin_operation_finish (operation);
 			}
-			
+
 			return FALSE;
 		}
 
-		marlin_channel_clear_range (sample->priv->channel_data->pdata[MARLIN_CHANNEL_RIGHT], 
-					    operation, 
-					    range->start, range->finish, 
+		marlin_channel_clear_range (sample->priv->channel_data->pdata[MARLIN_CHANNEL_RIGHT],
+					    operation,
+					    range->start, range->finish,
 					    ctxt, error);
 		break;
 
@@ -1109,7 +1113,7 @@
 	}
 
 	channel = sample->priv->channel_data->pdata[0];
-	
+
 	WRITE_UNLOCK (sample->priv->lock);
 
 	/* This is an ugly hack... FIXMEFIXME */
@@ -1144,7 +1148,7 @@
 {
 	g_free (data);
 }
-	
+
 /**
  * marlin_sample_swap_channels:
  * @sample: A #MarlinSample
@@ -1177,7 +1181,7 @@
 		if (*error != NULL) {
 			/* Make GError */
 		}
-		
+
 		return FALSE;
 	}
 
@@ -1265,7 +1269,7 @@
 	int chan;
 	MarlinSamplePrivate *s_priv, *d_priv;
 	MarlinChannel *channel;
-	
+
 	g_return_val_if_fail (IS_MARLIN_SAMPLE (dest), FALSE);
 	g_return_val_if_fail (IS_MARLIN_SAMPLE (src), FALSE);
 
@@ -1392,18 +1396,18 @@
 	if (ctxt) {
 		c = g_new (struct _sample_closure, 1);
 		c->sample = dest;
-		
+
 		u = marlin_undoable_new (insert_undo,
 					 NULL,
 					 insert_destroy,
 					 c);
-		
+
 		marlin_undo_context_add (ctxt, u);
 	}
 
 	READ_LOCK (src->priv->lock);
 	WRITE_LOCK (dest->priv->lock);
-	
+
 	for (i = 0; i < src_channels; i++) {
 		MarlinChannel *s_channel = src->priv->channel_data->pdata[i];
 		MarlinChannel *d_channel = dest->priv->channel_data->pdata[i];
@@ -1419,12 +1423,12 @@
 					 insert_undo,
 					 NULL,
 					 c);
-		
+
 		marlin_undo_context_add (ctxt, u);
 	}
 
 	channel = dest->priv->channel_data->pdata[0];
-	
+
 	g_object_set (G_OBJECT (dest),
 		      "total_frames", channel->frames,
 		      "dirty", TRUE,
@@ -3016,7 +3020,7 @@
 		MarlinChannel *channel = priv->channel_data->pdata[i];
 
 		if (i > 0) {
-			/* Check all the frames are equal 
+			/* Check all the frames are equal
 			   - if not, take the min */
 			if (frames != channel->frames) {
 				g_warning ("Frame mismatch: %llu vs %llu (%d)\n",
@@ -3033,3 +3037,18 @@
 
 	WRITE_UNLOCK (priv->lock);
 }
+
+gboolean
+marlin_sample_process_ladspa (MarlinSample *sample,
+			       LADSPA_Descriptor *ladspa,
+			       MarlinRange       *range,
+			       MarlinOperation   *operation,
+			       MarlinUndoContext *ctxt,
+			       GError           **error)
+{
+#ifdef HAVE_LADSPA
+	return TRUE;
+#else
+	return TRUE;
+#endif
+}

Modified: trunk/marlin/marlin-sample.h
==============================================================================
--- trunk/marlin/marlin-sample.h	(original)
+++ trunk/marlin/marlin-sample.h	Sun Feb 22 22:51:13 2009
@@ -216,6 +216,14 @@
 				 MarlinRange *range);
 
 void marlin_sample_frame_count_changed (MarlinSample *sample);
+
+gboolean marlin_sample_process_ladspa (MarlinSample *sample,
+				       LADSPA_Descriptor *ladspa,
+				       MarlinRange       *range,
+				       MarlinOperation   *operation,
+				       MarlinUndoContext *ctxt,
+				       GError           **error);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/marlin/marlin-types.h
==============================================================================
--- trunk/marlin/marlin-types.h	(original)
+++ trunk/marlin/marlin-types.h	Sun Feb 22 22:51:13 2009
@@ -29,6 +29,10 @@
 typedef struct _MarlinChannel MarlinChannel;
 typedef struct _MarlinBlock MarlinBlock;
 
+/* Define this by hand here so that we don't have to include ladspa.h
+   This will probably break if someone else includes ladspa.h and this */
+typedef struct _LADSPA_Descriptor LADSPA_Descriptor;
+
 typedef struct _MarlinPeak {
 	short low;
 	short high;
@@ -55,7 +59,7 @@
 	MARLIN_SCALE_LOG,
 } MarlinScale;
 
-typedef float (* MarlinFadeFunc) (guint64 position, 
+typedef float (* MarlinFadeFunc) (guint64 position,
 				  gpointer closure);
 
 typedef enum {

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Sun Feb 22 22:51:13 2009
@@ -53,6 +53,7 @@
 	       $(MEDIA_PROFILES_LIBS)		\
 	       $(UNIQUE_LIBS)			\
 	       $(BURN_LIBS)			\
+	       $(LADSPA_LIBS)			\
 	       $(INTLLIBS)			\
 	       $(top_builddir)/marlin/libmarlin.la	\
 	       $(top_builddir)/marlin/libmarlinx.la	\



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