3615124b45bf6320c18c7e88a7d70ce2045b602b
[profile/ivi/sdk/web-sample-build.git] / samples / web / Sample / Tizen / Web App / Modello_SDL / project / app / controller / sdl / MediaController.js
1 /*
2  * Copyright (c) 2013, Ford Motor Company All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *  · Redistributions of source code must retain the above copyright notice,
7  * this list of conditions and the following disclaimer.
8  *  · Redistributions in binary form must reproduce the above copyright notice,
9  * this list of conditions and the following disclaimer in the documentation
10  * and/or other materials provided with the distribution.
11  *  · Neither the name of the Ford Motor Company nor the names of its
12  * contributors may be used to endorse or promote products derived from this
13  * software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25  * POSSIBILITY OF SUCH DAMAGE.
26  */
27 /**
28  * @name SDL.SDLMediaController
29  * @desc SDL Media Controller logic
30  * @category Controller
31  * @filesource app/controller/sdl/SDLMediaController.js
32  * @version 1.0
33  */
34
35 SDL.SDLMediaController = Em.Object.create( {
36
37     /**
38      * Current Media application id
39      *
40      * @type {Number}
41      */
42     currentAppId: 0,
43
44     /**
45      * Return current Media application name used for application button
46      */
47     currentAppName: function() {
48         if( this.currentAppId ){
49             return SDL.SDLController.getApplicationModel( this.currentAppId ).appName;
50         }
51     }.property( 'this.currentAppId' ),
52
53     /**
54      * Return current Media application icon used for application button
55      */
56     currentAppIcon: function() {
57         if( this.currentAppId ){
58             return SDL.SDLController.getApplicationModel( this.currentAppId ).appIcon;
59         }
60     }.property( 'this.currentAppId', 'SDL.SDLAppController.model.appIcon' ),
61
62     /** Call notification OnCommand on UIRPC */
63     onCommand: function( element ) {
64         FFW.UI.onCommand( element.commandId, element.appId );
65     },
66
67     /** Call notification OnCommandSoftButton on UIRPC */
68     onCommandSoftButton: function( element ) {
69         FFW.UI.onCommandSoftButton( element.softButtonID, element.appId );
70     },
71
72     /** Switching on Application */
73     activateApp: function( applicationModel ) {
74
75         // store active application id
76         this.set( 'currentAppId', applicationModel.appId );
77
78         // set active model
79         SDL.SDLAppController.set( 'model', applicationModel );
80
81         // FFW.BasicCommunication.ActivateApp( applicationModel.appId );
82
83         // SDL.MediaController.listDown();
84
85         SDL.MediaController.turnOnSDL();
86
87     },
88
89     /**
90      * Restore current application to active state
91      */
92     restoreCurrentApp: function() {
93
94         if( SDL.SDLAppController.model.appId === this.currentAppId ){
95             FFW.BasicCommunication.ActivateApp( this.currentAppId );
96             return;
97         }
98         this.activateApp( SDL.SDLController.getApplicationModel( this.currentAppId ) );
99     },
100
101     /** SDL perform interaction action from VR */
102     onVRPerformInteractionChoosed: function( element ) {
103
104         if( SDL.States.media.sdl.sdlperforminteractionchoise.active ){
105             FFW.VR.onChoise( element.choiceID );
106             SDL.States.back();
107         }
108
109     },
110
111     /** SDL perform interaction action */
112     onPerformInteractionChoosed: function( element ) {
113
114         if( SDL.States.media.sdl.sdlperforminteractionchoise.active ){
115             FFW.UI.interactionResponse( "SUCCESS", element.choiceID );
116             SDL.States.back();
117         }
118
119     },
120
121     /**
122      * Method hides sdl activation button and sdl application
123      *
124      * @param {Number}
125      */
126     onDeleteApplication: function( appId ) {
127         if( this.currentAppId == appId ){
128
129             if( SDL.States.media.sdlmedia.active || SDL.SDLAppController.model.active ){
130
131                 SDL.States.goToStates( 'info.apps' );
132
133                 SDL.MediaController.set( 'activeState', 'media.player' );
134             }
135
136             this.set( 'currentAppId', 0 );
137         }
138     }
139 } );