123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- 'use strict';
- * @ngdoc function
- * @name infernoQuadrifonicoApp.controller:AboutCtrl
- * @description
- * # AboutCtrl
- * Controller of the infernoQuadrifonicoApp
- */
- angular.module('infernoQuadrifonicoApp')
- .controller('PlayerCtrl', function ($http, $scope, $interval, $localStorage) {
- var channel = 0;
- $scope.current_channel = 1;
- $scope.changeChannel = function() {
- if(channel == 0){
- channel = 1;
- $scope.current_channel = 2;
- } else {
- channel = 0;
- $scope.current_channel = 1;
- }
- console.log("changing to channel " + channel);
- }
- var socket = io();
- socket.on('play', function(arquivo){
- console.log("Playing file: " + arquivo.url)
- $scope.playAudioFile(arquivo);
- });
- socket.on('stop', function(arquivo){
- console.log("Playing file: " + arquivo.url)
- $scope.stopAudioFile(arquivo);
- });
- socket.on('update playback', function(arquivo){
- console.log("Updating playback: " + arquivo.url)
- $scope.updatePlayback(arquivo);
- });
- $http.get('roteiro.json')
- .then(function(res){
- console.log("Loading data from file...")
- $scope.roteiro = res.data.estrofe;
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- $scope.roteiro[i].arquivos[c].playing = false;
- $scope.roteiro[i].arquivos[c].channels[0].seek = 0;
- $scope.roteiro[i].arquivos[c].channels[1].seek = 0;
- $scope.loadAudioFile($scope.roteiro[i].arquivos[c]);
- $scope.roteiro[i].arquivos[c].show = true;
- }
- }
- console.log($scope.roteiro);
- });
- $scope.loadAudioFile = function(arquivo){
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- if($scope.roteiro[i].arquivos[c].url == arquivo.url){
- var sound = new Howl({
- usingWebAudio: true,
- html5: false,
- src: [$scope.roteiro[i].arquivos[c].url],
- autoplay: false,
- loop: $scope.roteiro[i].arquivos[c].loop,
- volume: ($scope.roteiro[i].arquivos[c].channels[channel].volume/100),
- stereo: $scope.roteiro[i].arquivos[c].channels[channel].pan,
- onend: function(id) {
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- if($scope.roteiro[i].arquivos[c].id == id){
- $scope.roteiro[i].arquivos[c].playing = false;
- $scope.roteiro[i].arquivos[c].channels[channel].seek = 0;
- console.log('Finished: ' + id + " | playing: " + $scope.roteiro[i].arquivos[c].playing);
- $scope.$apply();
- delete $scope.roteiro[i].arquivos[c].sound;
- break;
- }
- }
- }
- }
- });
- }
- }
- }
- }
- $scope.playAudioFile = function(arquivo){
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- if($scope.roteiro[i].arquivos[c].url == arquivo.url){
-
-
-
- $scope.roteiro[i].arquivos[c].channels = arquivo.channels;
- console.log($scope.roteiro[i].arquivos[c])
- var channels = $scope.roteiro[i].arquivos[c].channels;
- console.log("received: " + $scope.roteiro[i].arquivos[c].url.split("public/audio/").pop() + " (" + channels[0].volume + "/" + channels[1].volume + " | " + channels[0].pan + "/" + channels[1].pan + ")")
- console.log("playing: " + $scope.roteiro[i].arquivos[c].url.split("public/audio/").pop() + " (" + channels[channel].volume + " | " + channels[channel].pan + ")")
- if($scope.roteiro[i].arquivos[c].sound) {
- $scope.roteiro[i].arquivos[c].sound.volume($scope.roteiro[i].arquivos[c].channels[channel].volume/100);
- $scope.roteiro[i].arquivos[c].sound.stereo($scope.roteiro[i].arquivos[c].channels[channel].pan/100);
- $scope.roteiro[i].arquivos[c].sound.stop();
- $scope.roteiro[i].arquivos[c].sound.play();
- } else {
- var sound = new Howl({
-
-
- src: [$scope.roteiro[i].arquivos[c].url],
- autoplay: false,
- loop: $scope.roteiro[i].arquivos[c].loop,
- volume: ($scope.roteiro[i].arquivos[c].channels[channel].volume/100),
- stereo: $scope.roteiro[i].arquivos[c].channels[channel].pan,
- onend: function(id) {
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- if($scope.roteiro[i].arquivos[c].id == id){
- $scope.roteiro[i].arquivos[c].playing = false;
- $scope.roteiro[i].arquivos[c].seek = 0;
- console.log('finished: ' + $scope.roteiro[i].arquivos[c].url.split("public/audio/").pop());
- $scope.$apply();
- delete $scope.roteiro[i].arquivos[c].sound;
- socket.emit('play ended', $scope.roteiro[i].arquivos[c]);
- break;
- }
- }
- }
- }
- });
- $scope.roteiro[i].arquivos[c].sound = sound
- $scope.roteiro[i].arquivos[c].id = sound.play();
- }
- $scope.roteiro[i].arquivos[c].sound.stereo($scope.roteiro[i].arquivos[c].pan);
- $scope.roteiro[i].arquivos[c].playing = true;
- var d = $scope.roteiro[i].arquivos[c].sound.duration();
- var s = $scope.roteiro[i].arquivos[c].channels[channel].seek;
- $scope.roteiro[i].arquivos[c].sound.seek((d * s)/100)
-
- }
- }
- }
- }
- $scope.stopAudioFile = function(arquivo){
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- if($scope.roteiro[i].arquivos[c].url == arquivo.url){
- $scope.roteiro[i].arquivos[c].sound.stop();
- delete $scope.roteiro[i].arquivos[c].sound;
- $scope.roteiro[i].arquivos[c].playing = false;
- $scope.roteiro[i].arquivos[c].channels[channel].seek = 0;
- console.log('Finished: ' + $scope.roteiro[i].arquivos[c].id + " | playing: " + $scope.roteiro[i].arquivos[c].playing);
- }
- }
- }
- }
- $scope.updatePlayback = function(arquivo){
- for (var i = 0; i < $scope.roteiro.length; i++) {
- for (var c = 0; c < $scope.roteiro[i].arquivos.length; c++) {
- if($scope.roteiro[i].arquivos[c].url == arquivo.url){
- if(arquivo.channels[channel].seek){
- $scope.roteiro[i].arquivos[c].channels[channel].seek = arquivo.channels[channel].seek;
- var d = $scope.roteiro[i].arquivos[c].sound.duration();
- var s = $scope.roteiro[i].arquivos[c].channels[channel].seek;
- var v = $scope.roteiro[i].arquivos[c].sound.seek();
- $scope.roteiro[i].arquivos[c].sound.seek(s)
- console.log("seek: " + s);
- }
- if(arquivo.channels[channel].volume){
- $scope.roteiro[i].arquivos[c].channels[channel].volume = arquivo.channels[channel].volume;
- $scope.roteiro[i].arquivos[c].sound.volume($scope.roteiro[i].arquivos[c].channels[channel].volume/100);
- console.log("volume: " + $scope.roteiro[i].arquivos[c].sound.volume() + " | " + $scope.roteiro[i].arquivos[c].channels[channel].volume);
- }
- if(arquivo.channels[0].pan){
- $scope.roteiro[i].arquivos[c].channels[channel].pan = arquivo.channels[channel].pan;
- $scope.roteiro[i].arquivos[c].sound.stereo($scope.roteiro[i].arquivos[c].channels[channel].pan/100);
- console.log("pan: " + $scope.roteiro[i].arquivos[c].sound.stereo() + " | " + $scope.roteiro[i].arquivos[c].channels[channel].pan);
- }
- break;
- }
- }
- }
- }
- });
|