2 * Copyright (c) 2013, Ford Motor Company All rights reserved.
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.
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.
28 * @name SDL.SDLMediaController
29 * @desc SDL Media Controller logic
30 * @category Controller
31 * @filesource app/controller/sdl/SDLMediaController.js
35 SDL.SDLMediaController = Em.Object.create( {
38 * Current Media application id
45 * Return current Media application name used for application button
47 currentAppName: function() {
48 if( this.currentAppId ){
49 return SDL.SDLController.getApplicationModel( this.currentAppId ).appName;
51 }.property( 'this.currentAppId' ),
54 * Return current Media application icon used for application button
56 currentAppIcon: function() {
57 if( this.currentAppId ){
58 return SDL.SDLController.getApplicationModel( this.currentAppId ).appIcon;
60 }.property( 'this.currentAppId', 'SDL.SDLAppController.model.appIcon' ),
62 /** Call notification OnCommand on UIRPC */
63 onCommand: function( element ) {
64 FFW.UI.onCommand( element.commandId, element.appId );
67 /** Call notification OnCommandSoftButton on UIRPC */
68 onCommandSoftButton: function( element ) {
69 FFW.UI.onCommandSoftButton( element.softButtonID, element.appId );
72 /** Switching on Application */
73 activateApp: function( applicationModel ) {
75 // store active application id
76 this.set( 'currentAppId', applicationModel.appId );
79 SDL.SDLAppController.set( 'model', applicationModel );
81 // FFW.BasicCommunication.ActivateApp( applicationModel.appId );
83 // SDL.MediaController.listDown();
85 SDL.MediaController.turnOnSDL();
90 * Restore current application to active state
92 restoreCurrentApp: function() {
94 if( SDL.SDLAppController.model.appId === this.currentAppId ){
95 FFW.BasicCommunication.ActivateApp( this.currentAppId );
98 this.activateApp( SDL.SDLController.getApplicationModel( this.currentAppId ) );
101 /** SDL perform interaction action from VR */
102 onVRPerformInteractionChoosed: function( element ) {
104 if( SDL.States.media.sdl.sdlperforminteractionchoise.active ){
105 FFW.VR.onChoise( element.choiceID );
111 /** SDL perform interaction action */
112 onPerformInteractionChoosed: function( element ) {
114 if( SDL.States.media.sdl.sdlperforminteractionchoise.active ){
115 FFW.UI.interactionResponse( "SUCCESS", element.choiceID );
122 * Method hides sdl activation button and sdl application
126 onDeleteApplication: function( appId ) {
127 if( this.currentAppId == appId ){
129 if( SDL.States.media.sdlmedia.active || SDL.SDLAppController.model.active ){
131 SDL.States.goToStates( 'info.apps' );
133 SDL.MediaController.set( 'activeState', 'media.player' );
136 this.set( 'currentAppId', 0 );