marlin r1361 - in trunk: . marlin src
- From: iain svn gnome org
- To: svn-commits-list gnome org
- Subject: marlin r1361 - in trunk: . marlin src
- Date: Sun, 22 Feb 2009 22:51:13 +0000 (UTC)
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]