aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/devices4ruby/SoundMixer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'externals/gridflow/devices4ruby/SoundMixer.rb')
-rw-r--r--externals/gridflow/devices4ruby/SoundMixer.rb152
1 files changed, 152 insertions, 0 deletions
diff --git a/externals/gridflow/devices4ruby/SoundMixer.rb b/externals/gridflow/devices4ruby/SoundMixer.rb
new file mode 100644
index 00000000..0ae50b60
--- /dev/null
+++ b/externals/gridflow/devices4ruby/SoundMixer.rb
@@ -0,0 +1,152 @@
+require "linux/ioctl"
+
+module Linux; module SoundMixer
+ extend IoctlClass
+
+ MIXER_NRDEVICES = 0x00000019
+ MIXER_VOLUME = 0x00000000
+ MIXER_BASS = 0x00000001
+ MIXER_TREBLE = 0x00000002
+ MIXER_SYNTH = 0x00000003
+ MIXER_PCM = 0x00000004
+ MIXER_SPEAKER = 0x00000005
+ MIXER_LINE = 0x00000006
+ MIXER_MIC = 0x00000007
+ MIXER_CD = 0x00000008
+ MIXER_IMIX = 0x00000009
+ MIXER_ALTPCM = 0x0000000a
+ MIXER_RECLEV = 0x0000000b
+ MIXER_IGAIN = 0x0000000c
+ MIXER_OGAIN = 0x0000000d
+ MIXER_LINE1 = 0x0000000e
+ MIXER_LINE2 = 0x0000000f
+ MIXER_LINE3 = 0x00000010
+ MIXER_DIGITAL1 = 0x00000011
+ MIXER_DIGITAL2 = 0x00000012
+ MIXER_DIGITAL3 = 0x00000013
+ MIXER_PHONEIN = 0x00000014
+ MIXER_PHONEOUT = 0x00000015
+ MIXER_VIDEO = 0x00000016
+ MIXER_RADIO = 0x00000017
+ MIXER_MONITOR = 0x00000018
+ ONOFF_MIN = 0x0000001c
+ ONOFF_MAX = 0x0000001e
+ MIXER_NONE = 0x0000001f
+ MIXER_ENHANCE = 0x0000001f
+ MIXER_MUTE = 0x0000001f
+ MIXER_LOUD = 0x0000001f
+ MIXER_RECSRC = 0x000000ff
+ MIXER_DEVMASK = 0x000000fe
+ MIXER_RECMASK = 0x000000fd
+ MIXER_CAPS = 0x000000fc
+ MIXER_STEREODEVS = 0x000000fb
+ MIXER_OUTSRC = 0x000000fa
+ MIXER_OUTMASK = 0x000000f9
+ MASK_VOLUME = 0x00000001
+ MASK_BASS = 0x00000002
+ MASK_TREBLE = 0x00000004
+ MASK_SYNTH = 0x00000008
+ MASK_PCM = 0x00000010
+ MASK_SPEAKER = 0x00000020
+ MASK_LINE = 0x00000040
+ MASK_MIC = 0x00000080
+ MASK_CD = 0x00000100
+ MASK_IMIX = 0x00000200
+ MASK_ALTPCM = 0x00000400
+ MASK_RECLEV = 0x00000800
+ MASK_IGAIN = 0x00001000
+ MASK_OGAIN = 0x00002000
+ MASK_LINE1 = 0x00004000
+ MASK_LINE2 = 0x00008000
+ MASK_LINE3 = 0x00010000
+ MASK_DIGITAL1 = 0x00020000
+ MASK_DIGITAL2 = 0x00040000
+ MASK_DIGITAL3 = 0x00080000
+ MASK_PHONEIN = 0x00100000
+ MASK_PHONEOUT = 0x00200000
+ MASK_RADIO = 0x00800000
+ MASK_VIDEO = 0x00400000
+ MASK_MONITOR = 0x01000000
+ MASK_MUTE = 0x80000000
+ MASK_ENHANCE = 0x80000000
+ MASK_LOUD = 0x80000000
+ MIXER_READ_VOLUME = 0x80044d00
+ MIXER_READ_BASS = 0x80044d01
+ MIXER_READ_TREBLE = 0x80044d02
+ MIXER_READ_SYNTH = 0x80044d03
+ MIXER_READ_PCM = 0x80044d04
+ MIXER_READ_SPEAKER = 0x80044d05
+ MIXER_READ_LINE = 0x80044d06
+ MIXER_READ_MIC = 0x80044d07
+ MIXER_READ_CD = 0x80044d08
+ MIXER_READ_IMIX = 0x80044d09
+ MIXER_READ_ALTPCM = 0x80044d0a
+ MIXER_READ_RECLEV = 0x80044d0b
+ MIXER_READ_IGAIN = 0x80044d0c
+ MIXER_READ_OGAIN = 0x80044d0d
+ MIXER_READ_LINE1 = 0x80044d0e
+ MIXER_READ_LINE2 = 0x80044d0f
+ MIXER_READ_LINE3 = 0x80044d10
+ MIXER_READ_MUTE = 0x80044d1f
+ MIXER_READ_ENHANCE = 0x80044d1f
+ MIXER_READ_LOUD = 0x80044d1f
+ MIXER_READ_RECSRC = 0x80044dff
+ MIXER_READ_DEVMASK = 0x80044dfe
+ MIXER_READ_RECMASK = 0x80044dfd
+ MIXER_READ_STEREODEVS = 0x80044dfb
+ MIXER_READ_CAPS = 0x80044dfc
+ MIXER_WRITE_VOLUME = 0xc0044d00
+ MIXER_WRITE_BASS = 0xc0044d01
+ MIXER_WRITE_TREBLE = 0xc0044d02
+ MIXER_WRITE_SYNTH = 0xc0044d03
+ MIXER_WRITE_PCM = 0xc0044d04
+ MIXER_WRITE_SPEAKER = 0xc0044d05
+ MIXER_WRITE_LINE = 0xc0044d06
+ MIXER_WRITE_MIC = 0xc0044d07
+ MIXER_WRITE_CD = 0xc0044d08
+ MIXER_WRITE_IMIX = 0xc0044d09
+ MIXER_WRITE_ALTPCM = 0xc0044d0a
+ MIXER_WRITE_RECLEV = 0xc0044d0b
+ MIXER_WRITE_IGAIN = 0xc0044d0c
+ MIXER_WRITE_OGAIN = 0xc0044d0d
+ MIXER_WRITE_LINE1 = 0xc0044d0e
+ MIXER_WRITE_LINE2 = 0xc0044d0f
+ MIXER_WRITE_LINE3 = 0xc0044d10
+ MIXER_WRITE_MUTE = 0xc0044d1f
+ MIXER_WRITE_ENHANCE = 0xc0044d1f
+ MIXER_WRITE_LOUD = 0xc0044d1f
+ MIXER_WRITE_RECSRC = 0xc0044dff
+ MIXER_INFO = 0x805c4d65
+ MIXER_ACCESS = 0xc0804d66
+ MIXER_AGC = 0xc0044d67
+ MIXER_3DSE = 0xc0044d68
+ MIXER_PRIVATE1 = 0xc0044d6f
+ MIXER_PRIVATE2 = 0xc0044d70
+ MIXER_PRIVATE3 = 0xc0044d71
+ MIXER_PRIVATE4 = 0xc0044d72
+ MIXER_PRIVATE5 = 0xc0044d73
+ MIXER_GETLEVELS = 0xc0a44d74
+ MIXER_SETLEVELS = 0xc0a44d75
+
+ DEVICE_LABELS = [
+ "Vol ", "Bass ", "Trebl", "Synth", "Pcm ",
+ "Spkr ","Line ", "Mic ", "CD ", "Mix ",
+ "Pcm2 ","Rec ", "IGain", "OGain",
+ "Line1", "Line2", "Line3", "Digital1", "Digital2", "Digital3",
+ "PhoneIn", "PhoneOut", "Video", "Radio", "Monitor"
+ ]
+
+ DEVICE_NAMES = [
+ "vol", "bass", "treble", "synth", "pcm", "speaker", "line",
+ "mic", "cd", "mix", "pcm2", "rec", "igain", "ogain",
+ "line1", "line2", "line3", "dig1", "dig2", "dig3",
+ "phin", "phout", "video", "radio", "monitor"
+ ]
+
+ DEVICE_NAMES.each_with_index {|name,i|
+ ioctl_accessor name,
+ MIXER_READ_VOLUME+i,
+ MIXER_WRITE_VOLUME+i
+ }
+
+end end