aboutsummaryrefslogtreecommitdiff
path: root/multimedia/kdemultimedia3
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/kdemultimedia3')
-rw-r--r--multimedia/kdemultimedia3/Makefile2
-rw-r--r--multimedia/kdemultimedia3/files/patch-kmix_mixer_oss.cpp21
2 files changed, 22 insertions, 1 deletions
diff --git a/multimedia/kdemultimedia3/Makefile b/multimedia/kdemultimedia3/Makefile
index f3d2a4e8930a..ed4f71a00cb2 100644
--- a/multimedia/kdemultimedia3/Makefile
+++ b/multimedia/kdemultimedia3/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdemultimedia
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= multimedia kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/multimedia/kdemultimedia3/files/patch-kmix_mixer_oss.cpp b/multimedia/kdemultimedia3/files/patch-kmix_mixer_oss.cpp
new file mode 100644
index 000000000000..b5be16597dea
--- /dev/null
+++ b/multimedia/kdemultimedia3/files/patch-kmix_mixer_oss.cpp
@@ -0,0 +1,21 @@
+--- kmix/mixer_oss.cpp Fri Sep 14 18:02:58 2007
++++ kmix/mixer_oss.cpp Fri Sep 14 19:45:27 2007
+@@ -243,6 +243,18 @@
+ if (ioctl(m_fd, SOUND_MIXER_READ_RECSRC, &i_recsrc) == -1)
+ errormsg(Mixer::ERR_READ);
+
++ // If the record source is supposed to be on, but wasn't set, explicitly
++ // set the record source. Not all cards support multiple record sources.
++ // As a result, we also need to do the read & write again.
++ if (((i_recsrc & ( 1<<devnum)) == 0) && on)
++ {
++ oldrecsrc = i_recsrc = 1 << devnum;
++ if (ioctl(m_fd, SOUND_MIXER_WRITE_RECSRC, &i_recsrc) == -1)
++ errormsg (Mixer::ERR_WRITE);
++ if (ioctl(m_fd, SOUND_MIXER_READ_RECSRC, &i_recsrc) == -1)
++ errormsg(Mixer::ERR_READ);
++ }
++
+ // PORTING: Hint: Do not forget to set i_recsrc to the new valid
+ // record source mask.
+