[Kwintv] PATCH: ALSA mixer plugin + conditional compilation

Neil Macvicar kwintv@mail.kde.org
Wed, 26 Mar 2003 15:01:11 +0000


--Boundary-00=_3Ccg+5XVzBOgmvO
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

As promised, here is a patch against the latest cvs tree that will allow the 
alsa mixer plugin to be compiled conditionally. New features to ./configure 
are :

--with-alsa-dir : specify the alsa base install directory.

Changed files are:

[mixers]
configure.in.in : New file. Defines a function to test for ALSA.
Makefile.am : Added a conditional test added to check whether or not we should 
compile the alsa mixer plugin.

[mixers/alsa]
qtvision_alsa.h qtvision_alsa.cpp qtvision_alsa.desktop : Minor changes to fix 
compilation.
Makefile.am : -lasound added 

Regards,
Neil.

--Boundary-00=_3Ccg+5XVzBOgmvO
Content-Type: text/x-diff;
  charset="us-ascii";
  name="alsa-mixer.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="alsa-mixer.patch"

diff -rNu fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/Makefile.am worki=
ng/kdenonbeta/kwintv3/qtvision/plugins/mixer/Makefile.am
=2D-- fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/Makefile.am	Thu Jun 1=
3 05:17:54 2002
+++ working/kdenonbeta/kwintv3/qtvision/plugins/mixer/Makefile.am	Wed Mar 2=
6 14:11:00 2003
@@ -1 +1,5 @@
=2DSUBDIRS=3Doss
+if include_ALSADIR
+ALSADIR =3D alsa
+endif
+
+SUBDIRS=3Doss $(ALSADIR)
diff -rNu fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/Makefile.am =
working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/Makefile.am
=2D-- fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/Makefile.am	Sun =
Nov  3 07:33:49 2002
+++ working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/Makefile.am	Wed =
Mar 26 14:11:42 2003
@@ -20,7 +20,7 @@
 kde_module_LTLIBRARIES =3D qtvision_alsa.la
=20
 qtvision_alsa_la_LDFLAGS =3D $(all_libraries) -module -avoid-version
=2Dqtvision_alsa_la_LIBADD =3D=20
+qtvision_alsa_la_LIBADD =3D -lasound
 qtvision_alsa_la_SOURCES =3D qtvision_alsa.cpp
=20
 METASOURCES =3D AUTO
diff -rNu fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_als=
a.cpp working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.=
cpp
=2D-- fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.cp=
p	Sat Feb 22 10:00:52 2003
+++ working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.cp=
p	Wed Mar 26 14:11:20 2003
@@ -3,6 +3,8 @@
 // Date: 14/12/2002
 // Abstract: Implementation of the ALSA Mixer plugin for QTVision
 // Revision Control:
+// 0.2: 26/03/2003 Minor changes to the constructor implemented (Neil Macv=
icar)
+//                        New method of creating an alsa mixer plugin adde=
d (Neil Macvicar)
 // 0.1: Initial Implementation
=20
 /*
@@ -41,7 +43,8 @@
 // Constructors and destructors
 //------------------------------------------------------------------------=
=2D----
=20
=2DQTVisionALSA::QTVisionALSA(QObject *parent, const char *name, const QStr=
ingList &/*args*/) : QVMixerPlugin("alsamixer", parent, name)
+QTVisionALSA::QTVisionALSA(QtVision *qtv, QObject *parent, const char *nam=
e)
+: QVMixerPlugin(qtv, "alsamixer", parent, name)
 {
   const char *sig=3D"[QTVisionALSA()]";
=20
@@ -514,9 +517,11 @@
   return 0;
 }
=20
=2D//----------------------------------------------------------------------=
=2D------
=2D
=2DK_EXPORT_COMPONENT_FACTORY(qtvision_alsa, KGenericFactory<QTVisionALSA>);
+extern "C" {
+	QTVisionALSA* create_alsa(QtVision *qtv) {
+		return new QTVisionALSA(qtv, 0, "ALSA plugin");
+	}
+};
=20
 #include "qtvision_alsa.moc"
=20
diff -rNu fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_als=
a.desktop working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_a=
lsa.desktop
=2D-- fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.de=
sktop	Thu Jan  9 13:22:07 2003
+++ working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.de=
sktop	Wed Mar 26 14:11:31 2003
@@ -4,6 +4,8 @@
 ServiceTypes=3DQtVision Audio Mixer
 X-KDE-ModuleType=3DPlugin
 X-KDE-Library=3Dqtvision_alsa
+X-QV-Plugin-Library=3Dalsa
+X-QV-Plugin-Factory=3Dalsa
 Name=3DALSA Mixer Plugin
 Name[es]=3DPlugin de mezclador ALSA
 Name[fr]=3DModule de mixeur ALSA
@@ -11,11 +13,11 @@
 Name[pt]=3D'Plugin' de Mistura ALSA
 Name[pt_BR]=3DPlug-in de Mixer ALSA
 Name[sv]=3DALSA mixerinsticksprogram
=2DName[uk]=3D=D0=92=D1=82=D1=83=D0=BB=D0=BE=D0=BA =D0=BC=D1=96=D0=BA=D1=88=
=D0=B5=D1=80=D1=83 OSS
+Name[uk]=3D=D0=92=D1=82=D1=83=D0=BB=D0=BE=D0=BA =D0=BC=D1=96=D0=BA=D1=88=
=D0=B5=D1=80=D1=83 ALSA
 Name[zh_CN]=3DALSA =E6=B7=B7=E9=9F=B3=E5=99=A8=E6=8F=92=E4=BB=B6
 Name[zu]=3DI-plugin Yomxubi we-ALSA
 Comment=3DThis provides support for ALSA mixer devices.
=2DComment[es]=3DProporciona soporte para mezcladores de audio OSS.
+Comment[es]=3DProporciona soporte para mezcladores de audio ALSA.
 Comment[fr]=3DCeci fournit la gestion des p=C3=A9riph=C3=A9riques de mixag=
e ALSA.
 Comment[pt]=3DFornece suporte ao dispositivos de mistura =C3=A1udio ALSA.
 Comment[pt_BR]=3DFornece suporte para dispositivos ALSA.
@@ -23,4 +25,4 @@
 Comment[zh_CN]=3D=E8=BF=99=E6=8F=90=E4=BE=9B=E5=AF=B9 ALSA =E9=9F=B3=E9=A2=
=91=E6=B7=B7=E9=9F=B3=E8=AE=BE=E5=A4=87=E7=9A=84=E6=94=AF=E6=8C=81=E3=80=82
 X-QV-Plugin-Author=3DNeil Macvicar
 X-QV-Configurable=3Dtrue
=2DX-QV-Default-Enabled=3Dfalse
+X-QV-Default-Enabled=3Dtrue
diff -rNu fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_als=
a.h working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.h
=2D-- fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.h	=
Tue Dec 17 02:25:45 2002
+++ working/kdenonbeta/kwintv3/qtvision/plugins/mixer/alsa/qtvision_alsa.h	=
Wed Mar 26 14:11:26 2003
@@ -3,6 +3,7 @@
 // Date: 14/12/2002
 // Abstract: Definition of the ALSA mixer plugin for QTVision
 // Revision Control
+// 0.2 : 26/03/2003 Minor changes to the constructor implemented (Neil Mac=
vicar)
 // 0.1 : Initial Definition
=20
 /*
@@ -45,7 +46,7 @@
   Q_OBJECT
=20
  public:
=2D  QTVisionALSA(QObject *parent, const char *name, const QStringList &);
+  QTVisionALSA(QtVision *qtv, QObject *parent,  const char *name);
   virtual ~QTVisionALSA(void);
=20
   virtual int probeDevices(void);
diff -rNu fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/configure.in.in w=
orking/kdenonbeta/kwintv3/qtvision/plugins/mixer/configure.in.in
=2D-- fresh/kdenonbeta/kwintv3/qtvision/plugins/mixer/configure.in.in	Thu J=
an  1 01:00:00 1970
+++ working/kdenonbeta/kwintv3/qtvision/plugins/mixer/configure.in.in	Wed M=
ar 26 14:14:47 2003
@@ -0,0 +1,81 @@
+
+##################################################################
+##=20
+##    QtVision mixer configure script
+##    Neil Macvicar (blackmogu@vfemail.net)
+##
+##################################################################
+
+AC_DEFUN(AC_PATH_ASOUND,
+[
+LIBASOUND=3D"-lasound"
+AC_MSG_CHECKING([for alsa libraries and headers])
+
+ac_alsa_libs=3DNO ac_alsa_includes=3DNO
+alsa_libraries=3D""
+alsa_includes=3D""
+AC_ARG_WITH(alsa-dir,
+	[  --with-alsa-dir=3DDIR	where the root of alsa-lib is installed],
+	[ ac_alsa_includes=3D"$withval"/include
+	  ac_alsa_libraries=3D"$withval"/lib
+	])
+
+want_alsa_mixer=3Dyes
+
+#AC_ARG_WITH(alsa,
+#	[  --without-alsa-mixer	disable alsa mixer plugin],
+#	[want_alsa_mixer=3DNO])
+
+if test $want_alsa_mixer =3D yes; then
+AC_CACHE_VAL(ac_cv_have_alsa,
+[# try to guess the location of the ALSA libraries/headers
+	alsa_incdirs=3D"/usr/include /usr/local/include $prefix/include $kde_extr=
a_includes"
+	alsa_incdirs=3D"$ac_alsa_includes $alsa_incdirs"=09
+	AC_FIND_FILE(alsa/asoundlib.h, $alsa_incdirs, alsa_incdir)
+	ac_alsa_includes=3D"$alsa_incdir"
+
+	alsa_libdirs=3D"/usr/lib /usr/local/lib $prefix/lib $exec_prefix/lib $kde=
_extra_libs"
+	if test ! "$ac_alsa_libraries" =3D "NO"; then
+		alsa_libdirs=3D"$ac_alsa_libraries $alsa_libdirs"
+	fi
+
+	test=3DNONE
+	alsa_libdir=3DNONE
+
+	for dir in $alsa_libdirs; do
+		try=3D"ls -1 $dir/libasound*"
+		if test=3D`eval $try 2>/dev/null`; then alsa_libdir=3D$dir; break; else =
echo "tried $dir" >&AC_FD_CC ; fi
+	done
+
+	ac_alsa_libraries=3D"$alsa_libdir"
+
+	if test "$ac_alsa_includes" =3D NO || test "$ac_alsa_libraries" =3D NO; t=
hen
+		have_alsa=3Dno
+	else
+		ALSA_INCLUDES=3D"-I$ac_alsa_includes ";
+		ALSA_LDFLAGS=3D"-L$ac_alsa_libraries -lasound";
+		have_alsa=3Dyes;
+	fi
+	])
+
+	eval "$ac_cv_have_alsa"
+	else
+		have_alsa=3Dno
+	fi
+
+AC_SUBST(ALSA_INCLUDES)
+AC_SUBST(ALSA_LDFLAGS)
+AC_SUBST(LIBALSA)
+])
+
+AC_PATH_ASOUND
+
+if test "$ac_alsa_includes" =3D NO || test "$ac_alsa_libraries" =3D NO; th=
en
+	ALSADIRS=3D
+	AC_MSG_RESULT([not found. Alsa mixer plugin disabled])
+else
+	ALSADIRS=3D"yes"
+	AC_MSG_RESULT([found. Alsa mixer plugin enabled])
+fi
+
+AM_CONDITIONAL(include_ALSADIR, [test -n "$ALSADIRS"])

--Boundary-00=_3Ccg+5XVzBOgmvO--