11const execa = require ( 'execa' )
22
3- function amixer ( ...args ) {
4- return execa . stdout ( 'amixer' , args , { preferLocal : false } )
3+ async function amixer ( ...args ) {
4+ return ( await execa ( 'amixer' , args ) ) . stdout
55}
66
77let defaultDeviceCache = null
@@ -17,10 +17,10 @@ function parseDefaultDevice (data) {
1717 return result [ 1 ]
1818}
1919
20- function getDefaultDevice ( ) {
21- if ( defaultDeviceCache ) return Promise . resolve ( defaultDeviceCache )
20+ async function getDefaultDevice ( ) {
21+ if ( defaultDeviceCache ) return defaultDeviceCache
2222
23- return amixer ( ) . then ( data => ( defaultDeviceCache = parseDefaultDevice ( data ) ) )
23+ return ( defaultDeviceCache = parseDefaultDevice ( await amixer ( ) ) )
2424}
2525
2626const reInfo = / [ a - z ] [ a - z ] * : P l a y b a c k [ 0 - 9 - ] + \[ ( [ 0 - 9 ] + ) % \] (?: [ [ 0 - 9 . - ] + d B \] ) ? \[ ( o n | o f f ) \] / i
@@ -35,22 +35,22 @@ function parseInfo (data) {
3535 return { volume : parseInt ( result [ 1 ] , 10 ) , muted : ( result [ 2 ] === 'off' ) }
3636}
3737
38- function getInfo ( ) {
39- return getDefaultDevice ( ) . then ( dev => amixer ( 'get' , dev ) ) . then ( data => parseInfo ( data ) )
38+ async function getInfo ( ) {
39+ return parseInfo ( await amixer ( 'get' , await getDefaultDevice ( ) ) )
4040}
4141
42- exports . getVolume = function ( ) {
43- return getInfo ( ) . then ( info => info . volume )
42+ exports . getVolume = async function getVolume ( ) {
43+ return ( await getInfo ( ) ) . volume
4444}
4545
46- module . exports . setVolume = function ( val ) {
47- return getDefaultDevice ( ) . then ( dev => amixer ( 'set' , dev , val + '%' ) ) . then ( ( ) => undefined )
46+ exports . setVolume = async function setVolume ( val ) {
47+ await amixer ( 'set' , await getDefaultDevice ( ) , val + '%' )
4848}
4949
50- module . exports . getMuted = function ( cb ) {
51- return getInfo ( ) . then ( info => info . muted )
50+ exports . getMuted = async function getMuted ( ) {
51+ return ( await getInfo ( ) ) . muted
5252}
5353
54- module . exports . setMuted = function ( val , cb ) {
55- return amixer ( 'set' , 'PCM' , ( val ? 'mute' : 'unmute' ) ) . then ( ( ) => undefined )
54+ exports . setMuted = async function setMuted ( val ) {
55+ await amixer ( 'set' , 'PCM' , val ? 'mute' : 'unmute' )
5656}
0 commit comments