Adding tizen.speech (voice control) support. 37/8837/2 submit/tizen/20130828.220448 submit/tizen/20130828.233443
authorbrianjjones <brian.j.jones@intel.com>
Wed, 28 Aug 2013 00:00:05 +0000 (17:00 -0700)
committerbrianjjones <brian.j.jones@intel.com>
Wed, 28 Aug 2013 00:20:28 +0000 (17:20 -0700)
Change-Id: I92270abf4429526009864b8eabfbb37144bc7a40
Signed-off-by: brianjjones <brian.j.jones@intel.com>
config.xml
js/main.js
packaging/MediaPlayer.changes

index c644111..8536249 100644 (file)
@@ -4,7 +4,7 @@
     <content src="index.html"/>
     <icon src="MediaPlayer.png"/>
     <name>MediaPlayer</name>
+    <tizen:privilege name="http://tizen.org/privilege/speech"/>
     <tizen:privilege name="http://tizen.org/privilege/content.read"/>
     <tizen:privilege name="http://tizen.org/privilege/content.write"/>
-    <tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
 </widget>
index bdc9ea6..c94be64 100644 (file)
@@ -36,10 +36,11 @@ var mediaListItemW;
 var mediaListItemH;
 var imageControls;
 var loadAndPlay = false;
-var loadTimer; 
+var loadTimer;
 var currentFileLoaded = false;
 var mediaNameCanvas;
 var mediaNameCTX;
+var speechObj;
 
 var mainMenuTitleTemplateLandscape = {"font" : "oblique bolder 30pt arial", "lineWidth" : 9.5, "fillStyle" : "black", "strokeStyle" : "white", "textAlign" : "left",
                "largeShadow" : 8, "shadowOffsetX" : 0, "shadowOffsetY" : 0, "shadowBlur" : 45, "shadowColor" : "rgba(255, 187, 0, 0.4)"};
@@ -76,6 +77,71 @@ function onError()
        console.log("Content discovery failed");
 }
 
+function setupSpeech()
+{
+       speechObj = tizen.speech;
+
+       try
+       {
+               var speechEventListener = {
+                       onaudiostart: function(){console.log("MediaPlayer: onaudiostart received");},
+                       onsoundstart: function(){console.log("MediaPlayer: onsoundstart received");},
+                       onspeechstart: function(){console.log("MediaPlayer: onspeechstart received");},
+                       onspeechend: function(){console.log("MediaPlayer: onspeechend received");},
+                       onsoundend: function(){console.log("MediaPlayer: onsoundend received");},
+                       onaudioend: function(){console.log("MediaPlayer: onaudioend received");},
+                       onresult: function(result){
+
+                               console.log("MediaPlayer: onresult received");
+
+                               for (var i = 0; i < result.length; i++)
+                               {
+                                       console.log("MediaPlayer: forloop, command = " + result[i]);
+                                       var commandFound = false;
+
+                                       switch(result[i])
+                                       {
+                                               case "play":
+                                                       playButtonClick();
+                                                       commandFound = true;
+                                               break;
+                                               case "next":
+                                                       nextButtonClick();
+                                                       commandFound = true;
+                                               break;
+                                               case "previous":
+                                                       backButtonClick();
+                                                       commandFound = true;
+                                               break;
+                                               case "stop":
+                                               case "pause":
+                                                       pauseButtonClick();
+                                                       commandFound = true;
+                                               break;
+                                               default:
+                                               break;
+                                       }
+
+                                       if (commandFound)
+                                               break;
+                               }
+                       },
+                       onnomatch: function(result){console.log("MediaPlayer: onnomatch received ");},
+                       onerror: function(error){console.log("MediaPlayer: onerror received");},
+                       onstart: function(){console.log("MediaPlayer: onstart received");},
+                       onend: function(){console.log("MediaPlayer: onend received");}
+               }
+
+               speechObj.setCBListener(speechEventListener);
+
+       }
+       catch(err)
+       {
+               console.log("MediaPlayer setupSpeech FAILED + " + err.message);
+       }
+
+}
+
 function loadImages(callback)
 {
        var loadedImages = 0;
@@ -637,6 +703,15 @@ function playButtonClick()
                alert(audioContent[listIndex].artists[0] + " : " + audioContent[listIndex].title + " failed to load, please select another file");
 }
 
+function pauseButtonClick()
+{
+       if (!currentPlayerControls.paused)
+       {
+               currentPlayerControls.pause();
+               $("#playButton").attr("src","images/playButton.png");
+       }
+}
+
 function backButtonClick()
 {
        switch (currentPlayerType)
@@ -846,6 +921,9 @@ function init()
 
        //Resize all items and search for local media
        resizeAll();
+
+       setupSpeech();
+
        getMedia(contentType);
 
        //Prevent highlighting
index 12e4825..c9321ec 100644 (file)
@@ -1,3 +1,6 @@
+* Tue Aug 27 2013 brianjjones <brian.j.jones@intel.com> submit/tizen/20130723.194640@f68855f
+- Adding tizen.speech (voice control) support.
+
 * Mon Jul 22 2013 brianjjones <brian.j.jones@intel.com> submit/tizen/20130719.021058@4b5b477
 - Fix for play button bug, music now moves to the next song when finished, error shows up if filetype can't be loaded
 - More image shrinking