for (var i = j; (i < (j+k) && i < this.content.length); i++)
{
+ if (typeof this.content[i].title !== "string")
+ this.content[i].title = "Unknown";
+
//Check if album art is done loading, if not draw default until it is
if (this.content[i].artists === undefined)
{
this.content[i].artists[0] = "Unknown";
}
- var trackText = {"text" : this.content[i].title, "xLoc" : canvasH + 20, "yLoc" : canvasH / 2.5 , "zLoc" : 0};
- var artistText = {"text" : this.content[i].artists[0], "xLoc" : canvasH + 20, "yLoc" : canvasH / 1.1 , "zLoc" : 0};
+ else if (typeof this.content[i].artists[0] !== "string")
+ this.content[i].artists[0] = "Unknown";
+
+ var trackText = {"text" : this.content[i].title, "xLoc" : canvasH + 20, "yLoc" : canvasH / 2.5 , "zLoc" : 0};
+ var artistText = {"text" : this.content[i].artists[0], "xLoc" : canvasH + 20, "yLoc" : canvasH / 1.1 , "zLoc" : 0};
- if (this.content[i].coverArt && this.content[i].coverArt.complete)
+ if (this.content[i].coverArt && this.content[i].coverArt.complete && (this.content[i].coverArt.naturalWidth !== 0 || this.content[i].coverArt.naturalHeight !== 0) )
this.makeListBar(this.content[i].coverArt, i, artistText, trackText);
else
this.makeListBar(musicIcon, i, artistText, trackText);
var trackTextTemplate = {"font" : "bold 16pt Arial", "lineWidth" : 3.0, "fillStyle" : "white", "strokeStyle" : "black", "textAlign" : "left"};
-var mediaTextTemplate2Landscape = {"font" : "bold 15pt Arial", "lineWidth" : 10.0, "fillStyle" : "white", "strokeStyle" : "rgba(0, 0, 0, 1.0)", "textAlign" : "left",
+var mediaTextTemplate2Landscape = {"font" : "bold 13pt Arial", "lineWidth" : 10.0, "fillStyle" : "white", "strokeStyle" : "rgba(0, 0, 0, 1.0)", "textAlign" : "left",
"shadowOffsetX" : 0, "shadowOffsetY" : 0, "shadowBlur" : 0, "shadowColor" : "rgba(0, 0, 0, 1.0)"};
-var mediaTextTemplate3Landscape = {"font" : "bold 15pt Arial", "lineWidth" : 3.0, "fillStyle" : "white", "strokeStyle" : "rgba(100, 0, 0, 1.0)", "textAlign" : "left"};
+var mediaTextTemplate3Landscape = {"font" : "bold 13pt Arial", "lineWidth" : 3.0, "fillStyle" : "white", "strokeStyle" : "rgba(100, 0, 0, 1.0)", "textAlign" : "left"};
var trackTextTemplateLandscape = {"font" : "bold 11pt Arial", "lineWidth" : 3.0, "fillStyle" : "white", "strokeStyle" : "black", "textAlign" : "left"};
{
console.log("MediaPlayer in getMedia");
var manager = tizen.content;
- var filter = new tizen.AttributeFilter("type", "EXACTLY", filterType);
- manager.find(callback, onError, null, filter);
+ if (manager)
+ {
+ var filter = new tizen.AttributeFilter("type", "EXACTLY", filterType);
+ manager.find(callback, onError, null, filter);
+ }
+ else
+ console.log("MediaPlayer failed to receive media, tizen.content is unavailable");
}
function showMediaMenu()
console.log("MediaPlayer: Speech Recognition not running, voice control will be unavailable");
speechObj = {
vocalizeString: function(item) { console.log(item); }
- };
+ };
}
audioPlayer = new MediaPlayer("audio");
MediaPlayer.prototype.makeListBar = function(icon, i, artistTextObj, trackTextObj)
{
- var lightColor = "";
- var canvasW = mediaListItemW;
- var canvasH = mediaListItemH * 0.95 ;
+ var lightColor = (i+1)%2 !== 0 ? "lightColor " : "";
+ var nightColor = nightMode ? "night" : "";
+ var canvasW = Math.floor(mediaListItemW);
+ var canvasH = Math.floor(mediaListItemH * 0.95) ;
- if ((i+1)%2 !== 0)
- {
- lightColor = "lightColor ";
- }
-
- if (nightMode)
- {
- this.mediaListItems.append("<li id=" + this.type + "ListItem" + i + " style='width:" + mediaListItemW + "px;" + " height:" + mediaListItemH + "px;" +
- " margin-bottom: 10px' ><a href='#' class='" + lightColor + "night' >" +
- "<canvas id=" + this.type + "CanvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>" +
- "</a></li>"
- );
- }
- else
- {
- this.mediaListItems.append("<li id=" + this.type + "ListItem" + i + " style='width:" + mediaListItemW + "px;" + " height:" + mediaListItemH + "px;" +
- " margin-bottom: 10px' ><a href='#' class='" + lightColor + "night' >" +
- "<canvas id=" + this.type + "CanvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>" +
- "</a></li>"
- );
- }
+ this.mediaListItems.append("<li id=" + this.type + "ListItem" + i + " style='width:" + mediaListItemW + "px;" + " height:" + mediaListItemH + "px;" +
+ " margin-bottom: 10px' ><a href='#' class='" + lightColor + nightColor + "' >" +
+ "<canvas id=" + this.type + "CanvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>" +
+ "</a></li>"
+ );
try
{
var currentCanvas = document.getElementById(this.type + "CanvasNum" + i);
var currentCTX = currentCanvas.getContext("2d");
- this.content[i].ctx = currentCTX;
-
- currentCTX.drawImage(icon, 0, 0, canvasH, canvasH );
- var artistText = new TextObject(currentCTX,artistTextObj);
- var trackText = new TextObject(currentCTX,trackTextObj);
- var mediaTextTemp1 = screenOrientation === "portrait" ? mediaTextTemplate2 : mediaTextTemplate2Landscape;
- var mediaTextTemp2 = screenOrientation === "portrait" ? mediaTextTemplate3 : mediaTextTemplate3Landscape;
- var trackTextTemp = screenOrientation === "portrait" ? trackTextTemplate : trackTextTemplateLandscape;
-
- trackText.applyTemplate(mediaTextTemp1);
- trackText.drawObj();
- trackText.applyTemplate(mediaTextTemp2);
- trackText.drawObj();
- artistText.applyTemplate(trackTextTemp);
- artistText.drawObj();
+ if (currentCanvas && currentCTX)
+ {
+ this.content[i].ctx = currentCTX;
+
+ currentCTX.drawImage(icon, 0, 0, canvasH, canvasH );
+ var artistText = new TextObject(currentCTX,artistTextObj);
+ var trackText = new TextObject(currentCTX,trackTextObj);
+ var trackTextTemp1 = screenOrientation === "portrait" ? mediaTextTemplate2 : mediaTextTemplate2Landscape;
+ var trackTextTemp2 = screenOrientation === "portrait" ? mediaTextTemplate3 : mediaTextTemplate3Landscape;
+ var artistTextTemp = screenOrientation === "portrait" ? trackTextTemplate : trackTextTemplateLandscape;
+
+ trackText.applyTemplate(trackTextTemp1);
+ trackText.drawObj();
+ trackText.applyTemplate(trackTextTemp2);
+ trackText.drawObj();
+ artistText.applyTemplate(artistTextTemp);
+ artistText.drawObj();
+ }
+ else
+ console.log("MediaPlayer: Failed to draw media item for index " + i );
}
catch(err)
{
console.log("MediaPlayer: drawImage failed for " + this.type + " - reason -> " + err);
+ console.log("Source below");
+ console.log("Src = " + icon.src);
}
}
for (var i = j; (i < (j+k) && i < this.content.length); i++)
{
+
+ if (this.content[i].artists === undefined)
+ {
+ this.content[i].artists = new Array();
+ this.content[i].artists[0] = "Unknown";
+ }
+
+ else if (typeof this.content[i].artists[0] !== "string")
+ this.content[i].artists[0] = "Unknown";
+
var artistText = {"text" : this.content[i].artists[0], "xLoc" : canvasH + 20, "yLoc" : canvasH / 2.5 , "zLoc" : 0};
var trackText = {"text" : this.content[i].title, "xLoc" : canvasH + 20, "yLoc" : canvasH / 1.1 , "zLoc" : 0};