mirror of
https://github.com/fergalmoran/dss.web.git
synced 2026-02-16 13:11:33 +00:00
74 lines
2.5 KiB
JavaScript
Executable File
74 lines
2.5 KiB
JavaScript
Executable File
'use strict';
|
|
|
|
angular.module('dssWebApp')
|
|
.controller('FooterCtrl', function ($scope, AudioService, AUDIO_EVENTS, PLAYSTATES) {
|
|
var sliding = false;
|
|
$scope.mix = {};
|
|
$scope.sliding = false;
|
|
$scope.vm = {
|
|
playState: PLAYSTATES.stopped,
|
|
playPos: 0,
|
|
max: 100,
|
|
currentVolume: AudioService.getVolume(),
|
|
timeCurrent: "00:00",
|
|
timeDuration: "00:00"
|
|
};
|
|
|
|
$('.currentVolume').slider({
|
|
range: [0, 1],
|
|
step: 0.01,
|
|
start : 0.5,
|
|
handles: 1,
|
|
slide: function() {
|
|
var volume = Math.round($(this).val()* 100);
|
|
AudioService.setVolume(volume);
|
|
$('.volumeText').html('Volume: ' + (volume).toFixed(0) + '');
|
|
$scope.vm.currentVolume = volume;
|
|
$scope.$apply();
|
|
}
|
|
});
|
|
$scope.playPause = function () {
|
|
switch ($scope.vm.playState) {
|
|
case PLAYSTATES.playing:
|
|
AudioService.pause();
|
|
break;
|
|
case PLAYSTATES.paused:
|
|
AudioService.resume();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
event.stopPropagation();
|
|
};
|
|
|
|
$scope.$on(AUDIO_EVENTS.audioStart, function (event, mix, id, duration) {
|
|
$scope.mix = mix;
|
|
$scope.vm.playState = PLAYSTATES.playing;
|
|
$scope.vm.timeDuration = duration/1000;
|
|
});
|
|
|
|
$scope.$on(AUDIO_EVENTS.audioPause, function (event, id) {
|
|
$scope.vm.playState = PLAYSTATES.paused;
|
|
});
|
|
|
|
$scope.$on(AUDIO_EVENTS.audioResume, function (event, id) {
|
|
$scope.vm.playState = PLAYSTATES.playing;
|
|
});
|
|
|
|
$scope.$on(AUDIO_EVENTS.audioProgress, function (event, duration, position) {
|
|
if (position)
|
|
$scope.vm.timeCurrent = position / 1000;
|
|
if (duration)
|
|
$scope.vm.timeDuration = duration/1000;
|
|
$scope.vm.playPos = (position / duration) * 100;
|
|
if (!$scope.$$phase) {
|
|
$scope.$apply();
|
|
}
|
|
});
|
|
$scope.doSeek = function($event){
|
|
var $bar = $(event.currentTarget);
|
|
var newPosition = ((event.pageX - ($bar.offset().left)) / ($bar.width()) * 100);
|
|
AudioService.setPosition(newPosition, false);
|
|
}
|
|
});
|