mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 08:03:30 +02:00
Mute devices when they're being used if the --mute-master option is given.
This commit is contained in:
30
lib/units/device/plugins/mute.js
Normal file
30
lib/units/device/plugins/mute.js
Normal file
@@ -0,0 +1,30 @@
|
||||
var Promise = require('bluebird')
|
||||
var syrup = require('stf-syrup')
|
||||
|
||||
var logger = require('../../../util/logger')
|
||||
|
||||
module.exports = syrup.serial()
|
||||
.dependency(require('./group'))
|
||||
.dependency(require('./service'))
|
||||
.define(function(options, group, service) {
|
||||
var log = logger.createLogger('device:plugins:mute')
|
||||
|
||||
if (options.muteMaster) {
|
||||
log.info('Will mute master volume during use')
|
||||
|
||||
group.on('join', function() {
|
||||
log.info('Muting master volume');
|
||||
service.setMasterMute(true)
|
||||
})
|
||||
|
||||
group.on('leave', function() {
|
||||
log.info('Unmuting master volume');
|
||||
service.setMasterMute(false)
|
||||
})
|
||||
}
|
||||
else {
|
||||
log.info('Will not mute master volume during use')
|
||||
}
|
||||
|
||||
return Promise.resolve()
|
||||
})
|
||||
@@ -671,6 +671,20 @@ module.exports = syrup.serial()
|
||||
return Promise.resolve(true)
|
||||
}
|
||||
|
||||
plugin.setMasterMute = function(mode) {
|
||||
return runServiceCommand(
|
||||
apk.wire.MessageType.SET_MASTER_MUTE
|
||||
, new apk.wire.SetMasterMuteRequest(mode)
|
||||
)
|
||||
.timeout(10000)
|
||||
.then(function(data) {
|
||||
var response = apk.wire.SetMasterMuteResponse.decode(data)
|
||||
if (!response.success) {
|
||||
throw new Error('Unable to set master mute')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function runServiceCommand(type, cmd) {
|
||||
var resolver = Promise.defer()
|
||||
var id = Math.floor(Math.random() * 0xFFFFFF)
|
||||
|
||||
Reference in New Issue
Block a user