mirror of https://github.com/GNOME/gimp.git
pasted the complete alsa.m4 so compiling from CVS doesn't require alsa.m4
2004-11-18 Michael Natterer <mitch@gimp.org> * acinclude.m4: pasted the complete alsa.m4 so compiling from CVS doesn't require alsa.m4 to be installed. * configure.in: check for alsa >= 1.0.0 and define HAVE_ALSA if found. * modules/Makefile.am: build controller_midi with ALSA_CFLAGS and ALSA_LIBS. * modules/controller_midi.c: s/HAVE_ALSALIB_H/HAVE_ALSA/.
This commit is contained in:
parent
30164f1be2
commit
bf08b8fd0a
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2004-11-18 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* acinclude.m4: pasted the complete alsa.m4 so compiling from
|
||||
CVS doesn't require alsa.m4 to be installed.
|
||||
|
||||
* configure.in: check for alsa >= 1.0.0 and define HAVE_ALSA
|
||||
if found.
|
||||
|
||||
* modules/Makefile.am: build controller_midi with ALSA_CFLAGS
|
||||
and ALSA_LIBS.
|
||||
|
||||
* modules/controller_midi.c: s/HAVE_ALSALIB_H/HAVE_ALSA/.
|
||||
|
||||
2004-11-18 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* plug-ins/common/compressor.c (compressors): added back the
|
||||
|
|
146
acinclude.m4
146
acinclude.m4
|
@ -28,6 +28,8 @@ $2])
|
|||
CPPFLAGS="$save_CPPFLAGS"
|
||||
])
|
||||
|
||||
|
||||
|
||||
# Configure paths for gimp-print
|
||||
# Roger Leigh -- Sat, 10 Feb 2001
|
||||
# (based on gimpprint.m4 by Owen Taylor 97-11-3)
|
||||
|
@ -218,3 +220,147 @@ main ()
|
|||
AC_SUBST(GIMPPRINT_LIBS)
|
||||
rm -f conf.gimpprinttest
|
||||
])
|
||||
|
||||
|
||||
|
||||
dnl Configure Paths for Alsa
|
||||
dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org>
|
||||
dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
|
||||
dnl Jaroslav Kysela <perex@suse.cz>
|
||||
dnl Last modification: alsa.m4,v 1.23 2004/01/16 18:14:22 tiwai Exp
|
||||
dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate.
|
||||
dnl enables arguments --with-alsa-prefix=
|
||||
dnl --with-alsa-enc-prefix=
|
||||
dnl --disable-alsatest
|
||||
dnl
|
||||
dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified,
|
||||
dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result.
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_ALSA],
|
||||
[dnl Save the original CFLAGS, LDFLAGS, and LIBS
|
||||
alsa_save_CFLAGS="$CFLAGS"
|
||||
alsa_save_LDFLAGS="$LDFLAGS"
|
||||
alsa_save_LIBS="$LIBS"
|
||||
alsa_found=yes
|
||||
|
||||
dnl
|
||||
dnl Get the cflags and libraries for alsa
|
||||
dnl
|
||||
AC_ARG_WITH(alsa-prefix,
|
||||
[ --with-alsa-prefix=PFX Prefix where Alsa library is installed(optional)],
|
||||
[alsa_prefix="$withval"], [alsa_prefix=""])
|
||||
|
||||
AC_ARG_WITH(alsa-inc-prefix,
|
||||
[ --with-alsa-inc-prefix=PFX Prefix where include libraries are (optional)],
|
||||
[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
|
||||
|
||||
dnl FIXME: this is not yet implemented
|
||||
AC_ARG_ENABLE(alsatest,
|
||||
[ --disable-alsatest Do not try to compile and run a test Alsa program],
|
||||
[enable_alsatest="$enableval"],
|
||||
[enable_alsatest=yes])
|
||||
|
||||
dnl Add any special include directories
|
||||
AC_MSG_CHECKING(for ALSA CFLAGS)
|
||||
if test "$alsa_inc_prefix" != "" ; then
|
||||
ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
|
||||
CFLAGS="$CFLAGS -I$alsa_inc_prefix"
|
||||
fi
|
||||
AC_MSG_RESULT($ALSA_CFLAGS)
|
||||
CFLAGS="$alsa_save_CFLAGS"
|
||||
|
||||
dnl add any special lib dirs
|
||||
AC_MSG_CHECKING(for ALSA LDFLAGS)
|
||||
if test "$alsa_prefix" != "" ; then
|
||||
ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
|
||||
LDFLAGS="$LDFLAGS $ALSA_LIBS"
|
||||
fi
|
||||
|
||||
dnl add the alsa library
|
||||
ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl -lpthread"
|
||||
LIBS=`echo $LIBS | sed 's/-lm//'`
|
||||
LIBS=`echo $LIBS | sed 's/-ldl//'`
|
||||
LIBS=`echo $LIBS | sed 's/-lpthread//'`
|
||||
LIBS=`echo $LIBS | sed 's/ //'`
|
||||
LIBS="$ALSA_LIBS $LIBS"
|
||||
AC_MSG_RESULT($ALSA_LIBS)
|
||||
|
||||
dnl Check for a working version of libasound that is of the right version.
|
||||
min_alsa_version=ifelse([$1], ,0.1.1,$1)
|
||||
AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
|
||||
no_alsa=""
|
||||
alsa_min_major_version=`echo $min_alsa_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
alsa_min_minor_version=`echo $min_alsa_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
alsa_min_micro_version=`echo $min_alsa_version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_C
|
||||
AC_TRY_COMPILE([
|
||||
#include <alsa/asoundlib.h>
|
||||
], [
|
||||
/* ensure backward compatibility */
|
||||
#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
|
||||
#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
|
||||
#endif
|
||||
#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
|
||||
#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
|
||||
#endif
|
||||
#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
|
||||
#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
|
||||
#endif
|
||||
|
||||
# if(SND_LIB_MAJOR > $alsa_min_major_version)
|
||||
exit(0);
|
||||
# else
|
||||
# if(SND_LIB_MAJOR < $alsa_min_major_version)
|
||||
# error not present
|
||||
# endif
|
||||
|
||||
# if(SND_LIB_MINOR > $alsa_min_minor_version)
|
||||
exit(0);
|
||||
# else
|
||||
# if(SND_LIB_MINOR < $alsa_min_minor_version)
|
||||
# error not present
|
||||
# endif
|
||||
|
||||
# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
|
||||
# error not present
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
exit(0);
|
||||
],
|
||||
[AC_MSG_RESULT(found.)],
|
||||
[AC_MSG_RESULT(not present.)
|
||||
ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
|
||||
alsa_found=no]
|
||||
)
|
||||
AC_LANG_RESTORE
|
||||
|
||||
dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
|
||||
if test "x$enable_alsatest" = "xyes"; then
|
||||
AC_CHECK_LIB([asound], [snd_ctl_open],,
|
||||
[ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
|
||||
alsa_found=no]
|
||||
)
|
||||
fi
|
||||
|
||||
LDFLAGS="$alsa_save_LDFLAGS"
|
||||
LIBS="$alsa_save_LIBS"
|
||||
|
||||
if test "x$alsa_found" = "xyes" ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
ALSA_CFLAGS=""
|
||||
ALSA_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
|
||||
dnl That should be it. Now just export out symbols:
|
||||
AC_SUBST(ALSA_CFLAGS)
|
||||
AC_SUBST(ALSA_LIBS)
|
||||
])
|
||||
|
|
10
configure.in
10
configure.in
|
@ -54,6 +54,7 @@ m4_define([gtkhtml2_required_version], [2.0.0])
|
|||
m4_define([gimpprint_required_version], [4.2.0])
|
||||
m4_define([gimpprint_suggested_version], [4.2.6])
|
||||
m4_define([gimpprint_toonew_version], [4.3.0])
|
||||
m4_define([alsa_required_version], [1.0.0])
|
||||
m4_define([rsvg_required_version], [2.2.0])
|
||||
m4_define([wmf_required_version], [0.2.8])
|
||||
m4_define([pygtk_required_version], [1.99.15])
|
||||
|
@ -1207,6 +1208,15 @@ AC_SUBST(LCMS_LIBS)
|
|||
AM_CONDITIONAL(HAVE_LCMS, test $have_lcms = yes)
|
||||
|
||||
|
||||
################
|
||||
# Check for alsa
|
||||
################
|
||||
|
||||
AM_PATH_ALSA(alsa_required_version,
|
||||
AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if alsa is available]),
|
||||
AC_MSG_WARN([*** midi input controller will be built without alsa support (alsa not found or unuseable) ***]))
|
||||
|
||||
|
||||
#######################
|
||||
# Check for linux input
|
||||
#######################
|
||||
|
|
|
@ -76,5 +76,6 @@ libcontroller_linux_input_la_LDFLAGS = -avoid-version -module $(no_undefined)
|
|||
libcontroller_linux_input_la_LIBADD = $(controller_libadd)
|
||||
|
||||
libcontroller_midi_la_SOURCES = controller_midi.c
|
||||
libcontroller_midi_la_CFLAGS = $(ALSA_CFLAGS)
|
||||
libcontroller_midi_la_LDFLAGS = -avoid-version -module $(no_undefined)
|
||||
libcontroller_midi_la_LIBADD = $(controller_libadd)
|
||||
libcontroller_midi_la_LIBADD = $(controller_libadd) $(ALSA_LIBS)
|
||||
|
|
|
@ -22,16 +22,14 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#undef HAVE_ASOUNDLIB_H
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
# include <alsa/asoundlib.h>
|
||||
#ifdef HAVE_ALSA
|
||||
#include <alsa/asoundlib.h>
|
||||
#endif
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
@ -79,7 +77,7 @@ struct _ControllerMidi
|
|||
GIOChannel *io;
|
||||
guint io_id;
|
||||
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
#ifdef HAVE_ALSA
|
||||
snd_seq_t *sequencer;
|
||||
guint seq_id;
|
||||
#endif
|
||||
|
@ -132,7 +130,7 @@ static gboolean midi_read_event (GIOChannel *io,
|
|||
GIOCondition cond,
|
||||
gpointer data);
|
||||
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
#ifdef HAVE_ALSA
|
||||
static gboolean midi_alsa_prepare (GSource *source,
|
||||
gint *timeout);
|
||||
static gboolean midi_alsa_check (GSource *source);
|
||||
|
@ -155,8 +153,7 @@ struct _GAlsaSource
|
|||
GSource source;
|
||||
ControllerMidi *controller;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif /* HAVE_ALSA */
|
||||
|
||||
static const GimpModuleInfo midi_info =
|
||||
{
|
||||
|
@ -260,7 +257,7 @@ midi_init (ControllerMidi *midi)
|
|||
midi->midi_channel = -1;
|
||||
midi->io = NULL;
|
||||
midi->io_id = 0;
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
#ifdef HAVE_ALSA
|
||||
midi->sequencer = NULL;
|
||||
midi->seq_id = 0;
|
||||
#endif
|
||||
|
@ -405,7 +402,7 @@ midi_set_device (ControllerMidi *midi,
|
|||
midi->io = NULL;
|
||||
}
|
||||
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
#ifdef HAVE_ALSA
|
||||
if (midi->seq_id)
|
||||
{
|
||||
g_source_remove (midi->seq_id);
|
||||
|
@ -414,7 +411,7 @@ midi_set_device (ControllerMidi *midi,
|
|||
snd_seq_close (midi->sequencer);
|
||||
midi->sequencer = NULL;
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_ALSA */
|
||||
|
||||
if (midi->device)
|
||||
g_free (midi->device);
|
||||
|
@ -425,7 +422,7 @@ midi_set_device (ControllerMidi *midi,
|
|||
{
|
||||
gint fd;
|
||||
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
#ifdef HAVE_ALSA
|
||||
if (! g_ascii_strcasecmp (midi->device, "alsa"))
|
||||
{
|
||||
GAlsaSource *event_source;
|
||||
|
@ -473,9 +470,10 @@ midi_set_device (ControllerMidi *midi,
|
|||
sizeof (GAlsaSource));
|
||||
event_source->controller = midi;
|
||||
midi->seq_id = g_source_attach ((GSource *) event_source, NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_ALSA */
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
fd = open (midi->device, O_RDONLY);
|
||||
|
@ -806,7 +804,7 @@ midi_read_event (GIOChannel *io,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
#ifdef HAVE_ASOUNDLIB_H
|
||||
#ifdef HAVE_ALSA
|
||||
static gboolean
|
||||
midi_alsa_prepare (GSource *source,
|
||||
gint *timeout)
|
||||
|
@ -833,12 +831,13 @@ midi_alsa_dispatch (GSource *source,
|
|||
GSourceFunc callback,
|
||||
gpointer user_data)
|
||||
{
|
||||
ControllerMidi *midi = CONTROLLER_MIDI (((GAlsaSource *) source)->controller);
|
||||
ControllerMidi *midi = CONTROLLER_MIDI (((GAlsaSource *) source)->controller);
|
||||
snd_seq_event_t *event;
|
||||
|
||||
if (snd_seq_event_input_pending (midi->sequencer, 1) > 0)
|
||||
{
|
||||
snd_seq_event_input (midi->sequencer, &event);
|
||||
|
||||
if (event->type == SND_SEQ_EVENT_NOTEON &&
|
||||
event->data.note.velocity == 0)
|
||||
event->type = SND_SEQ_EVENT_NOTEOFF;
|
||||
|
@ -869,4 +868,4 @@ midi_alsa_dispatch (GSource *source,
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_ALSA */
|
||||
|
|
Loading…
Reference in New Issue