amixer2019 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/amixer2019.rb +70 -0
- metadata +70 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5dfdb9a4e50a13b93c71f65cf4d3c76a616d508dafa0c422c5b918a2b24d20e9
|
4
|
+
data.tar.gz: c9de4099a34ec821f4a6bc9c738031997a07a340cbab679a2fd8001131e3d1b7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 26d66f01e2b2f8e39b4419bfcff9c1b72524500eebd519aac153161d707a97f141439bc97330a3cc73fd0f284c97195beee20905435d7801e20b359180801fc7
|
7
|
+
data.tar.gz: '085ab40ef1498ca606d51f05f73ac563169a88bfdf00380c4422a643250546d04bcc86596ddbb5ed88adff495a4296b6eb0a29291051309e7c7608cb82535484'
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/lib/amixer2019.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: amixer2019.rb
|
4
|
+
# description: A wrapper around the command-line program amixer.
|
5
|
+
|
6
|
+
|
7
|
+
class AMixer2019
|
8
|
+
|
9
|
+
def initialize(notch: 5, fade_interval: 0.15)
|
10
|
+
|
11
|
+
@notch, @fade_interval = notch, fade_interval
|
12
|
+
@control = `amixer scontrols`[/(?<=')[^']+/]
|
13
|
+
query(`amixer get '#{@control}'`)
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
# fades the volume up or down to the volume percentage
|
18
|
+
|
19
|
+
def fade(raw_val, interval: @fade_interval)
|
20
|
+
|
21
|
+
val = raw_val.to_i
|
22
|
+
return 'volume must be between 0 and 100' if val < 0 or val > 100
|
23
|
+
|
24
|
+
@volume.method(val > @volume ? :upto : :downto).call(val.to_i).each do |x|
|
25
|
+
sleep interval; setvol(x.to_s + '%')
|
26
|
+
end
|
27
|
+
|
28
|
+
@volume
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def mute() sset 'mute' end
|
33
|
+
def muted?() @muted end
|
34
|
+
def unmute() sset 'unmute' end
|
35
|
+
def vol_down() setvol(-@notch) end
|
36
|
+
def vol_up() setvol(+@notch) end
|
37
|
+
def volume() @volume end
|
38
|
+
def volume=(val) setvol(val) end
|
39
|
+
|
40
|
+
alias vol volume
|
41
|
+
alias vol= volume=
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def sset(switch)
|
46
|
+
query(`amixer sset '#{@control}' #{switch}`)
|
47
|
+
end
|
48
|
+
|
49
|
+
def setvol(val)
|
50
|
+
|
51
|
+
return sset(val) if val.is_a?(String) and val =~ /%$/
|
52
|
+
|
53
|
+
if val.to_i + @volume >= 0 and val.to_i + @volume <= 100 then
|
54
|
+
sset("%s%%" % [@volume + val.to_i])
|
55
|
+
else
|
56
|
+
@volume
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
def query(r)
|
62
|
+
|
63
|
+
h = r.match(/(?<volume>\d+)%\] \[(?<toggle>on|off)\]/)
|
64
|
+
@volume = h[:volume].to_i
|
65
|
+
@muted = h[:toggle] == 'off'
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: amixer2019
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Robertson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwMjEyMjA1NjQxWhcN
|
15
|
+
MjAwMjEyMjA1NjQxWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCj2ebI
|
17
|
+
aXA2kNyU35wvUgvRDbPtlFB6wUi5z0NBjLh9RsLZlQ17XygDRRNP6RVA8KD5q/Te
|
18
|
+
x2hMhG4LQure4O2bzDJFceC2H4m5GsucgskbAbs+iNevWC4acbTFcq4FUoL5ZfWD
|
19
|
+
pud2dltQWEXEpQr9nLCAfnM0l8LnXhmH3jG3/ufzo7bLZePeCHswrOWQz9ZyyBXr
|
20
|
+
zToeKT8tJ9irfEfLO8KTD9NGI7k/MXb80WZ3OJRMbw8UIFC6KfA6sYHXY7i0ILe+
|
21
|
+
mMVZiC9Ph2WtHOnRabV5jov2mf2sDGkqAHOPvxMBjOIaxOJkPHAl0eB7yRV8cqPK
|
22
|
+
iEwTaA85Y/+EkwWVtxRp3MdQVWP/yAP/IlBySrnZJbqYqHLypd60v5HhqNRiNR+E
|
23
|
+
aveP8TdP+UKAAqnUpntx6yC9BcYMWLyY+y4CvIzoY0sByvJaq/1xvDWM0iK6r9rW
|
24
|
+
93FbUziElVORatR+LB4icRQilSoX24DsVqUObS+SLlqdP60B5jY3GgDvEWkCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0aZMYevC
|
26
|
+
r0Yc+lJx+fwvW5loQL0wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAcJ5PMyass59t81ILbmjN4UUvCFzXNvDxBTWBB4jB
|
29
|
+
PMoAqUdMqUf2F/FGLXnJf5GQOvR5dBmJs6XeLlkjda2gMM/iAgwZKCc8HQblFDM3
|
30
|
+
LHOVdlC1btwrcnsCtLBnLkxhF4z55zl+dyNl7nbLpf61MOyaaXr5DmPNtIjT4jzO
|
31
|
+
4i83tLB2jb3+N3zXz62agkuc17Anis3q+RU1NnjRvVCcsQv+P2Fq21ND+6OBLc1a
|
32
|
+
mfpKqMSV6J9PcI/apADAympcQOmG500hHZH8baeq9AmE71WNd2S42EaGTspil+hX
|
33
|
+
o5jSpZbUmiIF9bZ1ystEK3YybOTaaqiWTITmy1onwGE3bXyTod0hRjgCanDwux/b
|
34
|
+
Duf82k9CokSrSxNXNCiLCTH/pOn7vx2bijOdeCrfRYswMZ8mUCaVnXeOIVEVUn43
|
35
|
+
xrnDkXQ5UbsMkpilAR42JzG+WOWh62UFBl2t20injcEiEa+yyKBuBqK8JRjUfoZi
|
36
|
+
YQVkc3AYB+yLRWF745GX8hKx
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
39
|
+
dependencies: []
|
40
|
+
description:
|
41
|
+
email: james@jamesrobertson.eu
|
42
|
+
executables: []
|
43
|
+
extensions: []
|
44
|
+
extra_rdoc_files: []
|
45
|
+
files:
|
46
|
+
- lib/amixer2019.rb
|
47
|
+
homepage: https://github.com/jrobertson/amixer2019
|
48
|
+
licenses:
|
49
|
+
- MIT
|
50
|
+
metadata: {}
|
51
|
+
post_install_message:
|
52
|
+
rdoc_options: []
|
53
|
+
require_paths:
|
54
|
+
- lib
|
55
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
requirements: []
|
66
|
+
rubygems_version: 3.0.2
|
67
|
+
signing_key:
|
68
|
+
specification_version: 4
|
69
|
+
summary: 'A wrapper around the command-line program amixer. #amixer #alsamixer #raspberrypi'
|
70
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|