aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/index.html1
-rw-r--r--app/js/services.js39
2 files changed, 36 insertions, 4 deletions
diff --git a/app/index.html b/app/index.html
index 0404bb0..77bcb2d 100644
--- a/app/index.html
+++ b/app/index.html
@@ -16,7 +16,6 @@
<script src="js/services.js" ></script>
<script src="js/directives.js" ></script>
<script src="js/controllers.js" ></script>
- <script src="js/yt_musicsearch.js" ></script>
</head>
<body id="body_spe" ng-app="playGraph" ng-controller="pointCtrl">
diff --git a/app/js/services.js b/app/js/services.js
index d18e923..8dbd1b2 100644
--- a/app/js/services.js
+++ b/app/js/services.js
@@ -9,7 +9,7 @@ app.service('pathService', function() {
var dy = point1.y - point2.y;
return Math.sqrt(dx * dx + dy * dy);
},
- computePlaylist: function(songList, line, duration) {
+ computePlaylistOld: function(songList, line, duration) {
//compute distances from the constrain path
console.log('length', line.length);
@@ -29,7 +29,39 @@ app.service('pathService', function() {
});
});
return selection;
- }
+ },
+ computePlaylist:function(songList, line, duration) {
+ //compute distances from the constrain path
+
+ var threshold = 60;
+ for(var i=songList.length-1; i>0; i--){
+ songList[i].selected = false;
+ };
+ var songCopy = songList.slice(0);
+ songCopy.sort(function(a,b){return a.x-b.x;});
+
+ var selection = [];
+ for(var i=line.length-1; i>0; i--) {
+ var point = line[i];
+ var min = line[i].x-threshold;
+ var max = line[i].x+threshold;
+ var j=songCopy.length-1;
+ while(songCopy[j].x > max && j > 0){
+ j--;
+ }
+ while(songCopy[j].x > min && j > 0){
+ var song = songCopy[j];
+ var d = self.dist(song, point);
+ if (d < threshold) {
+ songCopy.splice(j,1);
+ selection.push(song);
+ song.selected = true;
+ }
+ j--;
+ };
+ };
+ return selection;
+ }
};
return self;
});
@@ -39,12 +71,13 @@ app.service('musicPlayer', function() {
startSongWithDuration: function(id, duration)
{
$('#ytplayer').attr('src', 'https://www.youtube.com/embed/' + id + '?autoplay=1&modestbranding=1');
- self.musicTimer = setInterval(changeSong, duration * 1000);
+ self.musicTimer = setInterval(self.changeSong, duration * 1000);
},
changeSong: function()
{
clearInterval(self.musicTimer);
}
};
+
return self;
});