summaryrefslogtreecommitdiff
path: root/experiments/volume/utils.lua
diff options
context:
space:
mode:
Diffstat (limited to 'experiments/volume/utils.lua')
-rw-r--r--experiments/volume/utils.lua105
1 files changed, 0 insertions, 105 deletions
diff --git a/experiments/volume/utils.lua b/experiments/volume/utils.lua
deleted file mode 100644
index 417a666..0000000
--- a/experiments/volume/utils.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-local utils = {}
-
-local function split(string_to_split, separator)
- if separator == nil then separator = "%s" end
- local t = {}
-
- for str in string.gmatch(string_to_split, "([^".. separator .."]+)") do
- table.insert(t, str)
- end
-
- return t
-end
-
-function utils.extract_sinks_and_sources(pacmd_output)
- local sinks = {}
- local sources = {}
- local device
- local properties
- local ports
- local in_sink = false
- local in_source = false
- local in_device = false
- local in_properties = false
- local in_ports = false
- for line in pacmd_output:gmatch("[^\r\n]+") do
- if string.match(line, 'source%(s%) available.') then
- in_sink = false
- in_source = true
- end
- if string.match(line, 'sink%(s%) available.') then
- in_sink = true
- in_source = false
- end
-
- if string.match(line, 'index:') then
- in_device = true
- in_properties = false
- device = {
- id = line:match(': (%d+)'),
- is_default = string.match(line, '*') ~= nil
- }
- if in_sink then
- table.insert(sinks, device)
- elseif in_source then
- table.insert(sources, device)
- end
- end
-
- if string.match(line, '^\tproperties:') then
- in_device = false
- in_properties = true
- properties = {}
- device['properties'] = properties
- end
-
- if string.match(line, 'ports:') then
- in_device = false
- in_properties = false
- in_ports = true
- ports = {}
- device['ports'] = ports
- end
-
- if string.match(line, 'active port:') then
- in_device = false
- in_properties = false
- in_ports = false
- device['active_port'] = line:match(': (.+)'):gsub('<',''):gsub('>','')
- end
-
- if in_device then
- local t = split(line, ': ')
- local key = t[1]:gsub('\t+', ''):lower()
- local value = t[2]:gsub('^<', ''):gsub('>$', '')
- device[key] = value
- end
-
- if in_properties then
- local t = split(line, '=')
- local key = t[1]:gsub('\t+', ''):gsub('%.', '_'):gsub('-', '_'):gsub(':', ''):gsub("%s+$", "")
- local value
- if t[2] == nil then
- value = t[2]
- else
- value = t[2]:gsub('"', ''):gsub("^%s+", ""):gsub(' Analog Stereo', '')
- end
- properties[key] = value
- end
-
- if in_ports then
- local t = split(line, ': ')
- local key = t[1]
- if key ~= nil then
- key = key:gsub('\t+', '')
- end
- ports[key] = t[2]
- end
- end
-
- return sinks, sources
-end
-
-return utils \ No newline at end of file