Merge pull request #314 from feross/cast-connected

Use Chromecast connected icon when applicable
This commit is contained in:
Feross Aboukhadijeh
2016-04-05 19:15:17 -07:00

View File

@@ -182,24 +182,31 @@ function renderLoadingSpinner (state) {
} }
function renderCastScreen (state) { function renderCastScreen (state) {
var isChromecast = state.playing.location.startsWith('chromecast') var castIcon, castType
var isAirplay = state.playing.location.startsWith('airplay') if (state.playing.location.startsWith('chromecast')) {
var isDlna = state.playing.location.startsWith('dlna') castIcon = 'cast_connected'
castType = 'Chromecast'
} else if (state.playing.location.startsWith('airplay')) {
castIcon = 'airplay'
castType = 'AirPlay'
} else if (state.playing.location.startsWith('dlna')) {
castIcon = 'tv'
castType = 'DLNA'
}
var isStarting = state.playing.location.endsWith('-pending') var isStarting = state.playing.location.endsWith('-pending')
if (!isChromecast && !isAirplay && !isDlna) throw new Error('Unimplemented cast type') var castStatus = isStarting ? 'Connecting...' : 'Connected'
// Show a nice title image, if possible // Show a nice title image, if possible
var style = { var style = {
backgroundImage: cssBackgroundImagePoster(state) backgroundImage: cssBackgroundImagePoster(state)
} }
// Show whether we're connected to Chromecast / Airplay / DLNA
var castStatus = isStarting ? 'Connecting...' : 'Connected'
return hx` return hx`
<div class='letterbox' style=${style}> <div class='letterbox' style=${style}>
<div class='cast-screen'> <div class='cast-screen'>
<i class='icon'>${isAirplay ? 'airplay' : 'cast'}</i> <i class='icon'>${castIcon}</i>
<div class='cast-type'>${isAirplay ? 'AirPlay' : (isDlna ? 'DLNA' : 'Chromecast')}</div> <div class='cast-type'>${castType}</div>
<div class='cast-status'>${castStatus}</div> <div class='cast-status'>${castStatus}</div>
</div> </div>
</div> </div>
@@ -264,11 +271,12 @@ function renderPlayerControls (state) {
dlnaHandler = dispatcher('openDevice', 'dlna') dlnaHandler = dispatcher('openDevice', 'dlna')
} }
if (state.devices.chromecast || isOnChromecast) { if (state.devices.chromecast || isOnChromecast) {
var castIcon = isOnChromecast ? 'cast_connected' : 'cast'
elements.push(hx` elements.push(hx`
<i.icon.device <i.icon.device
class=${chromecastClass} class=${chromecastClass}
onclick=${chromecastHandler}> onclick=${chromecastHandler}>
cast ${castIcon}
</i> </i>
`) `)
} }