Fix player flakiness

* No more pause icon in the file list
* Reset state.playng completely after each play
* Fixes #318: false "cannot add dupe torrent" error
This commit is contained in:
DC
2016-04-06 00:58:34 -07:00
parent 8629fc956d
commit 85b6ca0639
4 changed files with 95 additions and 79 deletions

View File

@@ -15,13 +15,36 @@ var chromecasts = require('chromecasts')()
var dlnacasts = require('dlnacasts')()
var config = require('../../config')
var state = require('../state')
// App state. Cast modifies state.playing and state.errors in response to events
var state
// Callback to notify module users when state has changed
var update
// setInterval() for updating cast status
var statusInterval = null
// Start looking for cast devices on the local network
function init (appState, callback) {
state = appState
update = callback
// Listen for devices: Chromecast, DLNA and Airplay
chromecasts.on('update', function (player) {
state.devices.chromecast = chromecastPlayer(player)
})
dlnacasts.on('update', function (player) {
state.devices.dlna = dlnaPlayer(player)
})
var browser = airplay.createBrowser()
browser.on('deviceOn', function (player) {
state.devices.airplay = airplayPlayer(player)
}).start()
}
// chromecast player implementation
function chromecastPlayer (player) {
function addEvents () {
@@ -238,25 +261,6 @@ function dlnaPlayer (player) {
}
}
// start export functions
function init (callback) {
update = callback
// Listen for devices: Chromecast, DLNA and Airplay
chromecasts.on('update', function (player) {
state.devices.chromecast = chromecastPlayer(player)
})
dlnacasts.on('update', function (player) {
state.devices.dlna = dlnaPlayer(player)
})
var browser = airplay.createBrowser()
browser.on('deviceOn', function (player) {
state.devices.airplay = airplayPlayer(player)
}).start()
}
// Start polling cast device state, whenever we're connected
function startStatusInterval () {
statusInterval = setInterval(function () {