From 81108c6a091ece3c3811b39a1009e2210a2a4939 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Sat, 29 Oct 2011 14:15:51 +0100
Subject: [PATCH] fix player error reporting

---
 server/djrandom/frontend/static/js/djr/djr.js | 17 ++++++++++++++++
 .../djrandom/frontend/static/js/djr/player.js | 20 +------------------
 2 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/server/djrandom/frontend/static/js/djr/djr.js b/server/djrandom/frontend/static/js/djr/djr.js
index 4b5e4b7..bb76805 100644
--- a/server/djrandom/frontend/static/js/djr/djr.js
+++ b/server/djrandom/frontend/static/js/djr/djr.js
@@ -183,6 +183,23 @@ djr.debug = function(msg) {
   $('#debug').append('<p>' + msg + '</p>');
 };
 
+// Report a player error.
+djr.playerError = function(event) {
+  console.log(event.jPlayer.error);
+  console.log(event.jPlayer.error.type);
+  switch(event.jPlayer.error.type) {
+  case $.jPlayer.error.URL:
+    djr.debug('Error downloading song, skipping...')
+    if (djr.state.player) {
+      djr.state.player.nextSong();
+    }
+    break;
+  default:
+    djr.debug('Error: unexpected error (' + event.jPlayer.error.type + ')');
+    break;
+  }
+};
+
 // Utility functions.
 var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
 djr.generateRandomId = function() {
diff --git a/server/djrandom/frontend/static/js/djr/player.js b/server/djrandom/frontend/static/js/djr/player.js
index bdeae64..93f1c3c 100644
--- a/server/djrandom/frontend/static/js/djr/player.js
+++ b/server/djrandom/frontend/static/js/djr/player.js
@@ -16,9 +16,7 @@ djr.Player = function(backend, selector) {
     solution: "html,flash",
     swfPath: "/static/js",
     cssSelectorAncestor: "#cp_container",
-    error: function(e) {
-      djr.state.player.reportError(e);
-    }
+    error: djr.playerError
   });
   this.player = this.circleplayer.player;
 
@@ -338,21 +336,5 @@ djr.Player.prototype.streamCurrentPlaylist = function(enable) {
   // Nothing for now.
 };
 
-// An error has occurred in the player. Report it on the javascript
-// console.
-djr.Player.prototype.reportError = function(event) {
-  console.log(event.jPlayer.error);
-  console.log(event.jPlayer.error.type);
-  switch(event.jPlayer.error.type) {
-  case $.jPlayer.error.URL:
-    djr.debug('Error downloading song, skipping...')
-    this.nextSong();
-    break;
-  case $.jPlayer.error.NO_SOLUTION:
-    djr.debug('Error: unexpected error!');
-    break;
-  }  
-};
-
 
 // Fine
-- 
GitLab